Flex自定義事件用法指南
本文和大家重點(diǎn)討論一下Flex自定義事件的用法,事件是一個非常有用的功能,通常用于信息傳遞交互大大提高程序編寫的靈活性。
Flex自定義事件
事件是一個非常有用的功能,通常用于信息傳遞交互大大提高程序編寫的靈活性。在高級語言中都會集成這方面特性;Flex也不例外幾乎所有控件中都集成了大量的事件,如果Button的Click事件等。但實(shí)際應(yīng)用中控件自有的事件是不能滿真實(shí)需要的,特別在自己編寫自定義控件時,自定義控件內(nèi)部信息的改變?nèi)绾渭皶r通知所在的容器變得很更要;這個時候Flex自定義事件就起到它的作用。
在Flex中Flex自定義事件有兩種情況,分別是ActionScript和MXML中定義。
在ActionScript中定義:
- [Event(name="myEnableEvent",type="flash.events.Event")]
- publicclassMyComponentextendsUIComponent
- {
- ...
- }
Flex自定義事件在MXML中定義:
- <mx:Metadata>
- [Event(name="DataChange",type="DataChangeEvent")]
- </mx:Metadata>
DataChangeEvent事件參數(shù)的定義:
- importflash.events.Event;
- publicclassDataChangeEventextendsflash.events.Event
- {
- publicfunctionDataChangeEvent()
- {
- super("DataChange");
- }
- publicvarData:Object;
- }
在Flex自定義控件中定義和觸發(fā)事件:
- <?xmlversionxmlversion="1.0"encoding="utf-8"?>
- <mx:Formxmlns:mxmx:Formxmlns:mx="http://www.adobe.com/2006/mxml"width="212"height="56">
- <mx:Metadata>
- [Event(name="DataChange",type="DataChangeEvent")]
- </mx:Metadata>
- <mx:Buttonlabelmx:Buttonlabel="Button"click="Change()"/>
- <mx:Script>
- <![CDATA[
- functionChange():void
- {
- this.dispatchEvent(newDataChangeEvent());
- }
- ]]>
- </mx:Script>
- </mx:Form>
容器接收相關(guān)Flex自定義控件事件:
- <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute"xmlns:ns1="*">
- <ns1:EmployeeComboxns1:EmployeeCombox="146"y="132"DataChange="onChange(event)">
- </ns1:EmployeeCombo>
- <mx:Script>
- <![CDATA[
- importmx.controls.Alert;
- functiononChange(e:DataChangeEvent)
- {
- }
- ]]>
- </mx:Script>
- </mx:Application>
其實(shí)Flex自定義事件的現(xiàn)實(shí)也很簡單,但起著非常重要的作用;正是因?yàn)橛辛耸录臋C(jī)制,使得大部分重復(fù)的功能抽取到自定義控件中,從而達(dá)到一個很高的代碼重用性。
【編輯推薦】
- 解析Flex渲染器的使用
- Flex主題創(chuàng)建及支持的樣式設(shè)置方式
- 全面認(rèn)識Flex應(yīng)用程序的六大元素
- 揭開Flex正則表達(dá)式的神秘面紗
- Flex數(shù)據(jù)綁定及其使用頻繁的幾種情況