Egret中的事件机制是一套业内标准的事件处理架构。所提供的事件模式也非常的清晰、强大和高效。 在Egret中,事件模型定义了一套标准的生成和处理事件消息的方法,使程序中的对象可以相互交互,通信,保持自身状态和相应变化。简单的说,数据的提供者只管发出数据对象,只要确保数据对象是 `egret.Event` 类或者子类的实例即可。这种数据对象 ,称为`事件(Event)`。数据对象的发出者,称之为事件`发送者(Event dispatcher)`。同时,接受事件的对象,称为 `事件侦听者(Event listener)`。 以下是一个简单的例子。 当我们想要和男(女)朋友约会的时候,通常都会有一个约会的发起者,同时还有个一个约会对象。那么这个邀请过程,就是一个典型的事件过程。 这个过程请见下图: ![](566143cb47133.png) 男朋友是事件`发送者`,邀请约会就是男朋友发送的`事件`。而女朋友就是`事件侦听器`。 这个事件,包含三条主要内容:事件的类型,事件的目标,事件的相关数据。事件的类型就是邀请约会,女朋友会 根据事件的不同,来执行不同的任务。比如,事件是“邀请约会”,那么女朋友可能会执行,梳妆打扮,然后赴约。如果事件 是“肚子饿了”,那么女朋友会执行买菜做饭。 事件的`目标`,就是事件的发送者。如果没有这个信息,那么女朋友接到事件后,就无法知道是谁要约她,或者是谁饿了。 事件的`数据`,就是事件所要包含的信息。上面的约会事件中,事件的信息可以包括事件,地点,干什么。同理,“肚子饿了”这个事件,要包含的信息是想吃些什么,在家里吃还是去外面吃等等。当然,也有一些事件是不包含信息的,例如“捶背”,事件 接受者只要收到这个事件,直接执行就可以了。 根据上面这个例子,可以进一步了解Egret中的事件执行流程了。