如何在KineticJS Sprite上使用我自己的自定义属性?

时间:2013-09-09 07:01:12

标签: html5 sprite kineticjs

我正在使用 KineticJS Sprite 对象创建一个简单的HTML5 2D画布游戏。我需要每个精灵都具有某些特征,例如'shield','firepower','speed'等。所以我需要将我自己的自定义属性添加到Sprite对象。

理想情况下,我想要类似的东西:

mySpriteObj.setCustom('shield',50) // set a custom property to 50

......然后...... ..

var shield = mySpriteObj.getCustom('shield') // returns 50

但似乎没有那样的东西。我确实尝试将attr属性(getAttrsetAttr)与我自己的自定义值一起使用,但这不起作用。

是否有一种简单的方法可以将自己的变量与Sprite对象相关联?

感谢 欧文

2 个答案:

答案 0 :(得分:1)

尽管getAttr()setAttr()是最好的方法,但只要您不尝试使用.toJSON()保存画布然后重新创建节点,您就可以简单地像这样直接分配任何自定义值:

mySpriteObj.shield = someValue;
mySpriteObj.speed = someOtherValue;
var myObjSpeed = mySpriteObj.speed;
var myObjShield = mySpriteObj.shield;

尽管如此,您可能希望使用getAttr()setAttr()分享您的代码,并尝试修复错误。

答案 1 :(得分:0)

要向Kinetic.Shape添加方法,您可以使用addMethods功能,请参阅docs

您可以查看Kinetic Source有关如何使用此方法的示例。

示例:

Kinetic.Util.addMethods(Kinetic.Shape, {
  getCustom: function() {
    //getCustom attribute code here
  },
  getCustom2: function() {
    //getCustom attribute code here
  }
});

请注意,您可以通过在addMethod函数的第二个参数的对象中添加更多属性(函数)来添加多个函数。

和Ani说的一样,您应该使用getAttr()setAttr()函数来获取和设置自定义属性。