【问题标题】:KineticJS: is there any way of getting the height of a Sprite?KineticJS:有什么方法可以获取 Sprite 的高度吗?
【发布时间】:2013-03-05 00:52:46
【问题描述】:

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

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

object.getHeight();

这也适用于获取宽度。

提前致谢!

【问题讨论】:

    标签: height width sprite kineticjs dimensions


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      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/

      【讨论】:

        猜你喜欢
        • 2014-09-10
        • 2020-11-18
        • 2012-06-23
        • 2013-03-26
        • 1970-01-01
        • 1970-01-01
        • 2011-10-22
        • 2010-09-16
        相关资源
        最近更新 更多