KineticJS:有没有办法获得雪碧的高度?

时间:2013-03-16 08:19:16

标签: height width sprite kineticjs dimensions

所以KineticJS支持sprite,我在我当前的项目中使用sprite。有什么方法可以获得精灵对象的高度吗?

因为你可以像这样得到KineticJS中每个物体的高度:

object.getHeight();

这也适用于获得宽度。

提前致谢!

2 个答案:

答案 0 :(得分:1)

getHeight()为Spline返回0。

您可以定义getHeight和getWidth函数:

Kinetic.Spline.prototype.getWidth = function(){
  var points = this.getPoints();
  var minX = points[0].x;
  var maxX = points[0].x;
  for(var i = 1; i < points.length;i++){
    if(points[i].x < minX){
        minX = points[i].x;
    }
    if(points[i].x > maxX){
        maxX = points[i].x;
    }
  }
  return maxX - minX;
}

Kinetic.Spline.prototype.getHeight = function(){
  var points = this.getPoints();
  var minY = points[0].y;
  var maxY = points[0].y;
  for(var i = 1; i < points.length;i++){
    if(points[i].y < minY){
        minY = points[i].y;
    }
    if(points[i].y > maxY){
        maxY = points[i].y;
    }
  }
  return maxY - minY;
}

但这是实际高度/宽度的近似值。 示例:http://jsfiddle.net/lavrton/EM35c/

答案 1 :(得分:0)

Lavtron的答案是指 Spline ,而不是 Sprite (对于完全不同的东西,类似的单词!)。好消息, Sprite 可以使用:

对于精灵来说,

spriteObj.getHeight() spriteObj.getWidth(),就像对其他一切一样。

然而我发现你必须确保在你的精灵对象声明中首先明确指定高度宽度属性初始化它。否则这些方法在以后调用时返回'undefined'。它不会自动测量高度并使用getHeight()返回它,你必须确保它在Sprite对象中指定为一个值(例如32),以便getHeight()返回该值。