本文和大家重点讨论一下Flex自定义事件的用法,事件是一个非常有用的功能,通常用于信息传递交互大大提高程序编写的灵活性。
Flex自定义事件
事件是一个非常有用的功能,通常用于信息传递交互大大提高程序编写的灵活性。在高级语言中都会集成这方面特性;Flex也不例外几乎所有控件中都集成了大量的事件,如果Button的Click事件等。但实际应用中控件自有的事件是不能满真实需要的,特别在自己编写自定义控件时,自定义控件内部信息的改变如何及时通知所在的容器变得很更要;这个时候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事件参数的定义:
- importflash.events.Event;
- publicclassDataChangeEventextendsflash.events.Event
- {
- publicfunctionDataChangeEvent()
- {
- super("DataChange");
- }
- publicvarData:Object;
- }
在Flex自定义控件中定义和触发事件:
- <?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>
容器接收相关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>
其实Flex自定义事件的现实也很简单,但起着非常重要的作用;正是因为有了事件的机制,使得大部分重复的功能抽取到自定义控件中,从而达到一个很高的代码重用性。
【编辑推荐】