所以 KineticJS 支持精灵,我在当前项目中使用精灵。有什么方法可以获得精灵对象的高度吗?
因为您可以像这样在 KineticJS 中获取每个对象的高度:
对象.getHeight();
这也适用于获取宽度。
提前致谢!
所以 KineticJS 支持精灵,我在当前项目中使用精灵。有什么方法可以获得精灵对象的高度吗?
因为您可以像这样在 KineticJS 中获取每个对象的高度:
对象.getHeight();
这也适用于获取宽度。
提前致谢!
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/
Lavtron 的答案是指Spline,而不是Sprite (对于完全不同的事物而言,相似的词!)。好消息,对于Sprite ,您可以使用:
spriteObj.getHeight()和spriteObj.getWidth()用于精灵,就像您对其他所有内容一样。
但是,我发现您必须确保在初始化 sprite 对象时首先在声明中明确指定height和width属性。否则,这些方法在以后调用时返回“未定义”。它不会自动测量高度并使用 getHeight() 返回,您必须确保在 Sprite 对象中将其指定为一个值(例如 32),以便 getHeight() 返回该值。