跳到主要内容

事件处理机制

Egret中的事件机制是一套业内标准的事件处理架构。所提供的事件模式也非常的清晰、强大和高效。

在Egret中,事件模型定义了一套标准的生成和处理事件消息的方法,使程序中的对象可以相互交互,通信,保持自身状态和相应变化。简单的说,数据的提供者只管发出数据对象,只要确保数据对象是 egret.Event 类或者子类的实例即可。这种数据对象 ,称为事件(Event)。数据对象的发出者,称之为事件发送者(Event dispatcher)。同时,接受事件的对象,称为 事件侦听者(Event listener)

以下是一个简单的例子。

当我们想要和男(女)朋友约会的时候,通常都会有一个约会的发起者,同时还有个一个约会对象。那么这个邀请过程,就是一个典型的事件过程。

这个过程请见下图:

男朋友是事件发送者,邀请约会就是男朋友发送的事件。而女朋友就是事件侦听器

这个事件,包含三条主要内容:事件的类型,事件的目标,事件的相关数据。事件的类型就是邀请约会,女朋友会 根据事件的不同,来执行不同的任务。比如,事件是“邀请约会”,那么女朋友可能会执行,梳妆打扮,然后赴约。如果事件 是“肚子饿了”,那么女朋友会执行买菜做饭。

事件的目标,就是事件的发送者。如果没有这个信息,那么女朋友接到事件后,就无法知道是谁要约她,或者是谁饿了。

事件的数据,就是事件所要包含的信息。上面的约会事件中,事件的信息可以包括事件,地点,干什么。同理,“肚子饿了”这个事件,要包含的信息是想吃些什么,在家里吃还是去外面吃等等。当然,也有一些事件是不包含信息的,例如“捶背”,事件 接受者只要收到这个事件,直接执行就可以了。

根据上面这个例子,可以进一步了解Egret中的事件执行流程了。