Mate(二)——常用tag
来源:互联网 发布:装修淘宝店用什么软件 编辑:程序博客网 时间:2024/05/22 21:16
Event Handlers
对事件的处理,当事件发出时运行
<EventHandlers type="{QuoteEvent.GET}" debug="true"> <RemoteObjectInvoker destination="ColdFusion" source="stockQuoteExample.QuoteService" method="getQuote" arguments="{event.symbol}" debug="true"> <resultHandlers> <MethodInvoker generator="{QuoteManager}" method="storeQuote" arguments="{resultObject}"/> </resultHandlers> </RemoteObjectInvoker> </EventHandlers>
InlineInvoker
调用本地(script block创建)、静态、单例方法
调用静态方法
<InlineInvoker method="Math.random" />
返回值是 LastReturn
本地方法
<mx:Script>private function myMethod():void { trace('you called me!');}]]></mx:Script><EventHandlers type="myEventType"> <InlineInvoker method="myMethod" /></EventHandlers>
单例方法
<InlineInvoker method="{MySingleton.getInstance().myMethod}" />
MethodInvoker
创建generator指定类的object实例,并调用方法
<MethodInvoker generator="ClassNameToInstantiate" method="methodToExecute" arguments="{['argument1', 'argument2']}"/>
类似于
myWorker.methodToExecute('argument1', 'argument2');
Event Anouncer
定义事件对象并发出,按事件在文档中定义顺序执行
<EventAnnouncer type="myEventType" generator="MyEventClass"> <Properties myProperty="myValue" myProperty2="other value"/></EventAnnouncer>
类似于
var myEvent:MyEventClass = new MyEventClass("myEventType", true);
myEvent.myProperty = "myValue";
myEvent.myProperty2 = "other value";
dispatchEvent(myEvent);
Service Call
使用 HttpServiceInvoker WebServiceInvoker和RemoteObjectInvoker调用不同的服务。当在EventHandlers中使用这些tags时,当service请求发出后,后续的handler会立刻执行。如果希望后续handler等待service返回值再执行,将这些handlers放在service call的resultHandlers中,如:
<RemoteObjectInvoker destination="ColdFusion" source="stockQuoteExample.QuoteService" method="getQuote" arguments="{event.symbol}" debug="true"> <resultHandlers> <MethodInvoker generator="{QuoteManager}" method="storeQuote" arguments="{resultObject}"/> </resultHandlers> </RemoteObjectInvoker>
result 事件处理支持 EventAnouncer和CallBack
<resultHandlers><CallBack method="save_result"/><EventAnnouncer generator="{ SearchEvent }" type="{ SearchEvent.SEARCH }"></EventAnnouncer></resultHandlers>
instance属性:已经创建的remoteObject对象,用于service对象的重用,如:
<services:Services id="services"destination="ColdFusion" source="someCFC" />
<RemoteObjectInvoker instance="{services }" ... >
Date Copier
在 eventHandlers中定义,用处是将数据暂时缓存,为eventhandler后边的标签使用,目标属性可以是event handler lists’s data或者外部变量,如
<DataCopier destination="data" destinationKey="someProperty" source="result" sourceKey="someProperty" />
Stop Handlers
Event handlers中内容会顺序执行,如果想提前停止,可使用这个标签,可根据最后执行的methodInvoker 或者指定判断函数,决定是否停止执行,如
<StopHandlers lastReturnEquals="someValue" /> //最后执行的值是否为someValue <StopHandlers stopFunction="myStopSequenceFuntion" /> //停止函数private function myStopFunction(scope:Scope):Boolean { ... here you do some evaluation to determine whether to stop the execution of the list or not... return false; //or return true;
Call Back
调用发出Event的对象(如View)中的函数
<CallBack method=
"methodToCall" arguments=
"{['argument1', 'argument2']}" />
ObjectBuilder
创建对象为MethodInvoker和PropertyInjector服务,如
<ObjectBuilder generator="ClassNameToInstantiate" constructorArguments="{['argument1','argument2']}" > <Properties weightFactor="0.5" flatFee="3" /></ObjectBuilder>
相当于:
var myObject:ClassNameToInstantiate = new ClassNameToInstantiate('argument1', 'argument2');
myObject.flatFee=3;
MockRemoteObject
用于模拟远程调用,同样的还有MockWebService,如
<MockRemoteObject id="contacts" mockGenerator="{ MockContactService }" delay="3"> <methods> <MockMethod name="search" dataUrl="assets/xml/contacts.xml"/> </methods></MockRemoteObject>
其他tag
LocalEventMap主要用于module,需要传入dispatcher
AsyncMethodInvoker用于函数的异步调用,类似于RemoteObject监听resultHandler和faultHandler
Injectors
用于business中修改数据后,反应到view中
当target中的对象创建时就会运行,即the object of that class needs to be created within the display list, or be instantiated by theObjectBuilder orMethodInvoker tags.
可包含 PropertyInjector和ListenerInjector,以及Message Handler和Event Handler包含的tag
简单实例:
<Injectors target="{ ContactList }"> <PropertyInjector targetKey="contacts" source="{ ContactsManager }" sourceKey="contacts"/></Injectors>
包含MethodInvoker和ObjectBuilder
<Injectors target="{ ContactForm }"> <MethodInvoker generator="{ ContactsManager }" method="getCurrentContact" /> <ObjectBuilder generator="{ ContactFormresentationModel }" cache="none" constructorArguments="{ [ scope.dispatcher, lastReturn ] }" /> <PropertyInjector targetKey="model" source="{ lastReturn }"/></Injectors>
PropertyInjector
sourceKey只要有get方法即可
如果是变量,只要指定source即可
可以为target注入多个属性
<Injectors target="{PhotoViewAdapter}"> <PropertyInjector source="{PhotoManager}" .. /> <PropertyInjector source="{UserManager}" ... /> <PropertyInjector source="{AlbumManager}" ... /></Injectors>
ListenerInjector
位于Injectors中,监听type指定的事件,并运行 Injectors target代表的类的函数
<Injectors target="{ ContactFormPresentationModel }"> <ListenerInjector eventType="{ ContactEvent.SAVED }" method="contactSaved" /></Injectors>
Message Handlers
用于flex中message处理的简化,在多客户端通信的场景上用到,所以可以使用这它们制作出多人交互的应用,如即时聊天,多人对战,实时会议等。
有Producer和Consumer,客户端向服务器订阅消息,当服务器消息发生变化后,订阅了该消息的客户端会取得更新数据即时更新
当flex messaging service发送消息时执行,可以调用MethodInvoker EventAnnouncer等。
<MessageHandlers destination="YourGateway"> <MethodInvoker> <Call back> 等</MessageHandlers>
- Mate(二)——常用tag
- Mate(一)——总览
- Mate(三)——常见问题
- Mate(四)——扩展
- SEO常用MATE整理
- 常用的Struts 2.0的标志(Tag)介绍(Struts 2.0系列之二)
- git tag的使用——常用于版本发布
- Mate Flex Framework 流程介绍之 Listener tag
- install mate on fedora 23—分辨率的问题
- Struts 2 常用标签(Tag)详解
- SVN的trunk、branch、tag(二)
- Servlet&JSP (二)自定义Tag
- git——tag
- git——tag
- ListView(二)——常用
- Android—常用控件(二)按钮
- 常用的Tag值
- 填报表常用tag
- 在windows服务里如何使用timer
- 网络链接
- DNS原理和解析过程
- 经典古文名篇
- 应用HttpClient来对付各种顽固的WEB服务器
- Mate(二)——常用tag
- 一般的函数指针和类的函数指针
- Objective-C语法之代码块(block)的使用
- 游戏开发新的
- 运行bat隐藏cmd窗口
- C++ Boost 库文档索引
- 某高中oj b179: 空罐 Cans
- C常用函数理解与识记 第二季
- mre下的控件实现(一、公共的宏定义)