3
在Actionscript 3中,我可以動態地將一個方法添加到對象。 喜歡下面的代碼從actionscript中的另一個實例創建實例
var s:Sprite = new Sprite()
var f:Function = function(){this.graphic.clear()}
s.clean = f
我能創建從s清潔功能的另一個Sprite實例?
在Actionscript 3中,我可以動態地將一個方法添加到對象。 喜歡下面的代碼從actionscript中的另一個實例創建實例
var s:Sprite = new Sprite()
var f:Function = function(){this.graphic.clear()}
s.clean = f
我能創建從s清潔功能的另一個Sprite實例?
它使用雪碧的原型是可能的:
Sprite.prototype.clean = function():void { trace("works"); }
var s1:Sprite = new Sprite();
var s2:Sprite = new Sprite();
s1["clean"]();
s2["clean"]();
當然,這增加了清潔,以創建雪碧的所有實例,如果這不是你想要的,你可以只創建一個函數來創建精靈什麼,使用它。
function createSprite():Sprite
{
var s:Sprite = new Sprite();
var f:Function = function(){this.graphic.clear()}
s.clean = f ;
return s;
}
如果你不想改變Sprite類的另一種選擇是繼承並添加清潔方法到這個新類:
public class MySprite extends Sprite
{
public function clean():void
{
this.graphic.clear();
}
}
var s1:MySprite = new MySprite();
s1.clean();
我真的不想改變Sprite類。有沒有任何原型風格的解決方案? – ArchenZhang
編輯答案,如果您不想修改並使用該類,則可以擴展Sprite。 –