2007年3月2日 星期五

Handling events

今天主要從AdobeFlex Developer Center裡的Flex Quick Start下手...
針對各個議題研讀並了解後改寫程式,熟習自己習慣的撰寫模式...

Handling events
event的處理有三種~
* Registering an event handler in MXML
* Creating an inline event handler in the MXML definition
* Registering an event listener through ActionScript

自己習慣是利用第一跟第三種,
第一種利用組件自己的觸發事件
程式碼片段如下:
private function doChange():void{
bt.label="Change";
}

然後在組件Button裡面註冊一個click="doChange()"就好了...

第三種動態註冊我要監聽的事件
程式碼片段如下:
在application中加入creationComplete event,以便程式建立時執行init(),
private function init():void{
addListeners();
}

private function addListeners():void{
//將button "bt"呼叫一個CLICK事件,利用onChange()處理
bt.addEventListener(MouseEvent.CLICK,onChange);
}

//接受event做處理
private function onChange(evt:Event):void{
bt.label="Change!";
}

在組件Button裡面就可以不需要呼叫click事件了..
至於何時利用的時機個人覺得如下...
1.如果只是做畫面(ui)上處理的,第一種跟第二種event就很好用了.
2.第三種在做event control時必用,在Design Pattern裡面Singleton是常用的設計模式,所以大量使用這種方式註冊、監聽、廣播事件是很正常的.

沒有留言: