标签:
主要流程:
private createGameScene():void { var JimGreen = new Boy(); var HanMeimei = new Girl(); JimGreen.name = "JimGreen"; HanMeimei.name = "HanMeimei"; //拥有事件的人要接受事件的订阅:订阅的事件类型、事件发布的响应、告诉响应者谁是发布者(貌似写谁都一样) //侦听器的格式必须是 listenerName(evt:Event):void () JimGreen.addEventListener(MyEvent.DATE, HanMeimei.receive, JimGreen); JimGreen.invite();
JimGreen.removeEventListener(MyEvent.DATE, HanMeimei.receive, JimGreen); } } //首先要自定义事件 class MyEvent extends egret.Event { //事件的类型用 type:string 来注册 public constructor(type:string, bubbles:boolean = false, cancelable:boolean = false) { //param type 事件的类型,可以作为 Event.type 访问。 //param bubbles 确定 Event 对象是否参与事件流的冒泡阶段。默认值为 false。 //param cancelable 确定是否可以取消 Event 对象。默认值为 false。 //param data 与此事件对象关联的可选数据。 super(type, bubbles, cancelable); } //每个自定义事件要有一个唯一事件类型,因此用 static 修饰比较合适 public static DATE:string = "约会"; public _whrer:string = ""; public _todo:string = ""; } class Boy extends egret.Sprite { public constructor() { super(); } public invite() { var engagement:MyEvent = new MyEvent(MyEvent.DATE); //注册事件 engagement._whrer = "MacDonald"; engagement._todo = "have Dinner"; this.dispatchEvent(engagement); //发布事件 } } class Girl extends egret.Sprite { public constructor() { super(); } public receive(evt:MyEvent) { console.log(evt.target.name + " send engagement."); console.log(evt._todo + " in " + evt._whrer); } }
事件优先级 - 多个事件到来时优先响应哪一个?- priority
public addEventListener(type:string, listener:Function, thisObject:any, useCapture:boolean = false, priority:number = 0)
标签:
原文地址:http://www.cnblogs.com/Daniel-Liang/p/5931438.html