在 Actionscript 3 中,我可以动态地向对象添加方法。喜欢下面的代码
var s:Sprite = new Sprite()
var f:Function = function(){this.graphic.clear()}
s.clean = f
我可以使用 s 的 clean 函数创建另一个 Sprite 实例吗?
在 Actionscript 3 中,我可以动态地向对象添加方法。喜欢下面的代码
var s:Sprite = new Sprite()
var f:Function = function(){this.graphic.clear()}
s.clean = f
我可以使用 s 的 clean 函数创建另一个 Sprite 实例吗?
可以使用 Sprite 的原型:
Sprite.prototype.clean = function():void { trace("works"); }
var s1:Sprite = new Sprite();
var s2:Sprite = new Sprite();
s1["clean"]();
s2["clean"]();
当然,这会为您创建的所有 Sprite 实例添加干净,如果这不是您想要的,您可以创建一个函数来创建 sprite 并使用它。
function createSprite():Sprite
{
var s:Sprite = new Sprite();
var f:Function = function(){this.graphic.clear()}
s.clean = f ;
return s;
}
如果您不想更改 Sprite 类,您的另一个选择是继承并将 clean 方法添加到这个新类:
public class MySprite extends Sprite
{
public function clean():void
{
this.graphic.clear();
}
}
var s1:MySprite = new MySprite();
s1.clean();