事件是一個非常有用的功能,通常用於信息傳遞交互大大提高程序編寫的靈活性。在高級語言中都會集成這方面特性;
Flex也不例外幾乎所有控件中都集成了大量的事件,如果Button的Click事件等。但實際應用中控件自有的事件是不能滿真實需要的,特別在自己編寫自定義控件時,自定義控件內部信息的改變如何及時通知所在的容器變得很更要;這個時候自定義事件就起到它的作用。
在Flex中定義事件有兩中情況,分別是ActionScript和MXML中定義。
在ActionScript中定義:
[Event(name="myEnableEvent", type="flash.events.Event")]
public class MyComponent extends UIComponent { ... }
在MXML中定義: [Event(name="DataChange", type="DataChangeEvent")]
DataChangeEvent事件參數的定義:
import flash.events.Event;
public class DataChangeEvent extends flash.events.Event
{ public function DataChangeEvent() { super("DataChange"); }
public var Data:Object; } 在自定義控件中定義和觸發事件:
[Event(name="DataChange", type="DataChangeEvent")] function Change():void { this.dispatchEvent(new DataChangeEvent()); } 容器接收相關自定義控件事件: