码迷,mamicode.com
首页 > 其他好文 > 详细

Egret 事件机制

时间:2016-10-05 19:50:18      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:

主要流程:

    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)

 

Egret 事件机制

标签:

原文地址:http://www.cnblogs.com/Daniel-Liang/p/5931438.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!