从actionscript中的另一个实例创建一个实例

时间:2012-10-11 15:03:48

标签: actionscript-3 dynamic

在Actionscript 3中,我可以动态地向对象添加方法。 喜欢下面的代码

var s:Sprite = new Sprite()
var f:Function = function(){this.graphic.clear()}
s.clean = f

我可以使用s?

中的clean函数创建另一个Sprite实例

1 个答案:

答案 0 :(得分:2)

可以使用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();