0

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

因为您可以像这样在 KineticJS 中获取每个对象的高度:

对象.getHeight();

这也适用于获取宽度。

提前致谢!

4

2 回答 2

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/

于 2013-03-16T13:09:37.860 回答
0

Lavtron 的答案是指Spline,而不是Sprite (对于完全不同的事物而言,相似的词!)。好消息,对于Sprite ,您可以使用:

spriteObj.getHeight()spriteObj.getWidth()用于精灵,就像您对其他所有内容一样。

但是,我发现您必须确保在初始化 sprite 对象时首先在声明中明确指定heightwidth属性。否则,这些方法在以后调用时返回“未定义”。它不会自动测量高度并使用 getHeight() 返回,您必须确保在 Sprite 对象中将其指定为一个值(例如 32),以便 getHeight() 返回该值。

于 2013-09-10T10:22:52.923 回答