[Flex]Mate Flex Framework 流程介绍之 Listener tag

Mate Flex Framework 流程介绍:
Mate Flex Framework 流程介绍之From views to business logic
Mate Flex Framework 流程介绍之Dispatcher and ResponseHandler tags
Mate Flex Framework 流程介绍之Listener tag
Mate Flex Framework 流程介绍之Using an adapter
Mate Flex Framework 流程介绍之Using view injection


今天我给大家介绍一个比较高级一些的流程:从业务逻辑层到视图,具体流程请看下图。


准备工作:
首先在Event Map里面建立一个新的Mate tag:<MessageHandler>,这个新的mate tag的作用是建立一个用于接收message的tag,具体例子请看下面:

<mx:Consumer destination="YourGateway" /> 
<MessageHandlers destination="YourGateway">
    ... here what you want to happen when this message is received ...
</MessageHandlers>

1、从DataService发送一个消息。(例如上例中的consumer,接收consumer发送过来的消息)
2、在<MessageHandler>里面加入一些处理方式,例如上图所示的,在<MessageHandler>首先使用了<MethodeInvoker>
3、当调用完<MethodeInvoker>后,会自动触发下一个mate tag:<EventAnnouncer>
4、<EventAnnouncer>的作用就是调用某个Event。并通过Event Bus将这个Event发送出去。
      例如:http://mate.asfusion.com/page/documentation/tags/eventannouncer 这个里面所示的方式。
5、<Listener>部分是用于监听某一个Event的,在某些程度上它类似于<EventHandler>的处理方式。

    具体使用方式:
    <mate:Listener type="myEventType" method="handleThisEvent" />
    or
    <mate:Listener type="myEventType" receive="handleThisEvent(event)" />
    这个新的tag就是我们在这个流程上面重点介绍的。首先它应该在在View里面的,而<Listener>作用就是监听某个Event的响应事件。
    根据上图所示,当触发了<EventAnnouncer>后,会调用<mate:Listener>里面的handleThisEvent,进行一些处理。片段代码如下:
    <EventAnnouncer generator="MyEventClass" type="myEventType">
        <Properties myProperty="myValue" myProperty2="100"/>
    </EventAnnouncer> 
    <mate:Listener type="myEventType" receive="handleThisEvent(event)" />
6、<mate:Listener>的最终目的是将处理结果反应在视图上面。

以上就是 单向通讯:从业务逻辑层到视图(One-way communication from business logic to views: Listener tag)的流程图了。
 
重点部分:
<mate:Listener>的建立、使用。
1、<mate:Listener>是建立在视图上的。
2、用于接收Event Map里面的<EventAnnouncer>处理结果。