快速ActionScript问题,因为我还习惯使用该语言:
是否可以将addEventListener传递给另一个类中的函数? I.E.我有模型调用addEventListener(Event.NAME,Controller.function)或类似的东西。
如果我不能做到这一点,可能并不是什么大不了的事,但我只是为了代码组织等而感到奇怪。
答案 0 :(得分:3)
是的,你可以在我下面的例子中看到:
package
{
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite
{
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
addChild(new CustomSprite);
}// end function
}// end class
}// end package
import flash.events.Event;
import flash.display.Sprite;
internal class Global
{
public static function onAddedToStage(e:Event):void
{
trace("onAddedToStage() called.");
}// end function
}// end class
internal class CustomSprite extends Sprite
{
public function CustomSprite()
{
addEventListener(Event.ADDED_TO_STAGE, Global.onAddedToStage);
}// end function
}// end function
我个人不会建议,尽管它可能有一些有趣的应用程序。