[Flex]Mate Flex Framework 流程介绍之One-way Communication

Mate Flex Framework 流程介绍:
Mate Flex Framework 流程介绍之One-way Communication

本来还剩下一篇文章:《介绍Mate Flex Framework里面比较重要特性:extensions》
而这个功能也是属于Mate比较高级的功能,但是为了让大家更加的可以巩固之前的内容,因此extensions的介绍我打算先放一下,先系统的介绍一下Mate Framework的流程。

本次介绍的是一个比较简单的流程:
从视图发送消息给逻辑层(from veiws to business logic)
请先看一下流程图:

one-way-communication

由于原图已经把这个简单的流程进行了一些翻译,但是我在上图中去掉了这些解释,原因是想用自己的语言来进行描述,而非翻译英文的方式。

okay,那么我们开始吧:(我会结合上几个例子来进行翻译的)

1、视图会触发消息(dispatchEvent( new MyEvent( MyEvent.CLICK_ME )); )
    当触发了 MyEvent.CLICK_ME后,Mate Framework会把这个event送到被称作一个“Event Bus”的地方(请大家注意:这个EventBus是虚拟的,并不是存在于我们的实体代码里面,或者说是Mate的逻辑机制)
2、而Event Bus会将这个触发的Event告诉事件地图(Event Map)。
    Event Map里面会事先做好一些事件的处理逻辑(即定义好一些EventHandler)
3、在这些定义好的EventHandler里面,会有一组动作来响应这个Event(即从Event Bus送过来的 myEvent.CLICK_ME)
    在之前的例子中,我们定义的EventHandler的结构是:
   <EventHandlers type="{ MyEvent.CLICK_ME }">
      <MethodInvoker generator="{ A }" method="myEventHandler" />
   </EventHandlers>
   其中黑色斜体的就是我们要执行的动作(使用MethodInvoker来触发A.mxml中的myEventHandler这个方法,同时我们也可以使用其他的一些Mate标签,例如传入参数等。
   而在上图中,它除了调用MethodInvoker外,还调用了调用了ServiceInvoker。
4、同时根据流程图的顺序是:首先调用的是ServiceInvoker,从而返回一些结果值。然后调用的MethodInvoker。
    例如将调用ServiceInvoker得到的一些返回值,传送给MethodInvoker指定的某个class。

通过以上的步骤就完成了简单的Mate事件处理。

我在总结一下这个简单的流程:
首先分派MyEvent.CLICK_ME,然后会给一个叫做Event Bus的虚拟机制(我想应该是Mate Flex Framework的核心逻辑),同时Event Bus会将分派的内容传送给EventMap里面指定的EventHandler(分派的标识即时Event Type)。而在EventHandler里面会定义一些动作,同时按照一定的顺序来执行这些动作(例如加入负责处理Service的ServiceInvoker、或者处理method的MethodInvoker等)

是不是很简单呢?那么下一次我将会介绍一个稍微复杂一些的流程:双向通讯:分派和响应标签(two-way Communication:Dispatcher and ResponseHandler tags)。
posted @ 2009-05-11 20:14  Kenshin.L  阅读(486)  评论(0编辑  收藏  举报