Flex中的事件机制
ofengofeng | 更新时间:2008-07-11 08:49:25 | 点击数:4934
在Flex中定义事件有两中情况,分别是ActionScript和MXML中定义。 在ActionScript中定义:
CODE:
[Event(name="myEnableEvent", type="flash.events.Event")]
public class MyComponent extends UIComponent { ... } 在MXML中定义: CODE:
<mx:Metadata>
[Event(name="DataChange", type="DataChangeEvent")] </mx:Metadata> DataChangeEvent事件参数的定义: CODE:
import flash.events.Event;
public class DataChangeEvent extends flash.events.Event { public function DataChangeEvent() { super("DataChange"); } public var Data:Object; } 在自定义控件中定义和触发事件: CODE:
<?xml version="1.0" encoding="utf-8"?>
<mx:Form xmlns:mx="http://www.adobe.com/2006/mxml" width="212" height="56"> <mx:Metadata> [Event(name="DataChange", type="DataChangeEvent")] </mx:Metadata> <mx:Button label="Button" click="Change()"/> <mx:Script> <![CDATA[ function Change():void { this.dispatchEvent(new DataChangeEvent()); } ]]> </mx:Script> </mx:Form> 容器接收相关自定义控件事件: CODE:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:ns1="*">
<ns1:EmployeeCombo x="146" y="132" DataChange="onChange(event)" > </ns1:EmployeeCombo> <mx:Script> <![CDATA[ import mx.controls.Alert; function onChange(e:DataChangeEvent) { } ]]> </mx:Script> </mx:Application> 其实自定义事件的现实也很简单,但起着非常重要的作用;正是因为有了事件的机制,使得大部分重复的功能抽取到自定义控件中,从而达到一个很高的代码重用性。 |
|
来自: 墨香居BOOK > 《Flex&&as》