是否可以在不扩展它并创建新类的情况下将方法添加到现有(内置)ActionScript Flash类中?

时间:2011-03-29 13:51:58

标签: flash actionscript-3 actionscript

是否可以向现有(内置)ActionScript Flash类添加方法而不扩展它并创建新类?

例如,我想创建自己的fadeOut方法并将其添加到MovieClip类中,以便所有MovieClip都具有该方法,并像这样使用它:ball_mc.fadeOut()

我不想扩展这类课程:

公共类NewMovieClipClass扩展了MovieClip {...}

2 个答案:

答案 0 :(得分:3)

您可以在AS3中使用prototype

MovieClip.prototype.foo=function():void{
    trace("this is a test");
};          
var movieClip:MovieClip = new MovieClip();
movieClip.foo();//this is a test

答案 1 :(得分:2)

随着Actionscript 3.0的出现,Actionscript不再是典型的。事实上,这种做法被认为是糟糕的面向对象设计,因为MovieClip类的用户会突然拥有新方法或不可预测的方法,从而破坏了设计合同。我认为实现这一目标的最简单方法是继承Sprite或MovieClip,添加您需要的方法。有没有理由不能这样做?