AS3的事件派发和监听

第一步:声明静态私有事件变量(大写)

package game.event
{
    public class MainEvent{     
        public static const RETURN_SETTING:String = "return_setting";
    }
}

第二步:控制层(或者业务层)派发事件(event)

import game.event.MainEvent;
import laya.events.EventDispatcher;
···
public class MainController extends EventDispatcher
{
    static private var instance:MainController;
    static public function get Instance():MainController
    {
        if(instance == null){
            instance = new MainController();
        }
        return instance;
    }
。。。
       //派发事件
        this.event(MainEvent.RETURN_SETTING);
}

注意派发的对象是MainController
instance -> 单例模式了解:https://www.jianshu.com/p/018cb4e4565c
第三步:视图层绑定监听事件(on)

MainController.instance.on(MainEvent.RETURN_SETTING,this,onCloseAdvVideo);

第四步:视图层解绑监听事件(off)

MainController.instance.off(MainEvent.RETURN_SETTING,this,onCloseAdvVideo);

你可能感兴趣的:(AS3的事件派发和监听)