1, 自定义事件, MyEvent
class MyEvent extends egret.Event { /** * 一般会定义一个 DATA 字段作为事件 * 绑定事件监听器时, 一般用 类.DATA 直接绑定 */ public static DATA:string = "自定义事件"; /** * 1, 自定义事件必须继承 egret.Event 类 * 2, 自定义事件的构造函数需要三个参数: * -- type: 事件类型 bubbles: 是否冒泡, cancelable: 是否可以取消默认行为 * 3, 子类的构造器必须执行 super() 方法 */ public constructor(type:string, bubbles:boolean=false, cancelable:boolean=false) { super(type,bubbles,cancelable); } }
2, 实例化, 绑定 和 触发 自定义事件
class Main extends egret.DisplayObjectContainer { public constructor() { super(); this.addEventListener(egret.Event.ADDED_TO_STAGE, this.onAddToStage, this); } /** * 通过 对象.addEventListener(事件, 回调, 作用域this) * 通过 对象.dispatchEvent(事件实例) 触发自定义事件 */ private onAddToStage(event: egret.Event) { // 实例化自定义事件 var myEvent:MyEvent = new MyEvent(MyEvent.DATA); // 给显示对象绑定事件 this.addEventListener(MyEvent.DATA, function () { console.log(1) }, this); // 用显示对象触发事件 this.dispatchEvent(myEvent); } }