我正在使用 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属性(getAttr
和setAttr
)与我自己的自定义值一起使用,但这不起作用。
是否有一种简单的方法可以将自己的变量与Sprite对象相关联?
感谢 欧文
答案 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()
函数来获取和设置自定义属性。