addEventListener用于不同类中的函数

时间:2011-07-04 18:28:05

标签: actionscript-3 class-design addeventlistener

快速ActionScript问题,因为我还习惯使用该语言:

是否可以将addEventListener传递给另一个类中的函数? I.E.我有模型调用addEventListener(Event.NAME,Controller.function)或类似的东西。

如果我不能做到这一点,可能并不是什么大不了的事,但我只是为了代码组织等而感到奇怪。

1 个答案:

答案 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

我个人不会建议,尽管它可能有一些有趣的应用程序。