Flex事件機(jī)制中監(jiān)聽(tīng)器注冊(cè)方式
在學(xué)習(xí)Flex事件機(jī)制的過(guò)程中,你可能會(huì)遇到Flex事件監(jiān)聽(tīng)器注冊(cè)方面的問(wèn)題,這里和大家分享一下其注冊(cè)方法,相信本文介紹一定會(huì)讓你有所收獲。
Flex事件機(jī)制
事件處理是GUI開(kāi)發(fā)的重要組成部分,早在傳統(tǒng)的Client/Server開(kāi)發(fā)中,事件驅(qū)動(dòng)的開(kāi)發(fā)法就已經(jīng)是GUI開(kāi)發(fā)的主流。
Flex事件機(jī)制中事件監(jiān)聽(tīng)器注冊(cè)
Flex的可視化組件object都繼承了EventDispatCher類,因此它們都支持事件注冊(cè)methodaddEventListener。該method的定義如下:
- addEventListener(type:String,listener:FunCtion,
- useCapture:Boolean=false,priority:int=0,
- useWeakReferenCe:Boolean=false):void
通過(guò)addEventListenermethod,我們可以為可視化組件注冊(cè)一個(gè)事件監(jiān)聽(tīng)器。type參數(shù)表明事件監(jiān)聽(tīng)器的TYPE,如鼠標(biāo)單擊事件(MouseEvent.CLICK);listener參數(shù)是事件監(jiān)聽(tīng)器的具體method;useCapture參數(shù)設(shè)定是否在事件的捕獲階段就進(jìn)行響應(yīng);priority參數(shù)設(shè)定事件監(jiān)聽(tīng)器的優(yōu)先級(jí);useWeakReferenCe參數(shù)設(shè)定事件監(jiān)聽(tīng)器method是否為弱TYPE,一個(gè)強(qiáng)TYPE的事件監(jiān)聽(tīng)器method是不會(huì)被Flex進(jìn)行自動(dòng)垃圾收集的。
先前我們提到的Flex事件機(jī)制中事件監(jiān)聽(tīng)器內(nèi)建方式,實(shí)際上已經(jīng)創(chuàng)建了一個(gè)默認(rèn)的事件監(jiān)聽(tīng)器method,并把ACtionSCript腳本的內(nèi)容寫入method,但這種method的最大不足就是無(wú)法操作一個(gè)以上的事件監(jiān)聽(tīng)器。
而使用addEventListenermethod注冊(cè)事件監(jiān)聽(tīng)器的方式,我們可以控制事件響應(yīng)的捕獲方式和優(yōu)先級(jí);當(dāng)我們已經(jīng)添加的事件監(jiān)聽(tīng)器在程式的運(yùn)行過(guò)程中需要取消掉的時(shí)候,我們可以通過(guò)removeEventListenermethod來(lái)呈現(xiàn)。而這些功能在事件監(jiān)聽(tīng)器內(nèi)建方式中不會(huì)被支持,理由也很明了:內(nèi)建的事件監(jiān)聽(tīng)器都是匿名的,我們無(wú)法引用到匿名監(jiān)聽(tīng)器的監(jiān)聽(tīng)實(shí)體method。
因此,在使用Flex事件機(jī)制的時(shí)候,還是應(yīng)該盡量選用事件監(jiān)聽(tīng)器注冊(cè)的方式來(lái)構(gòu)建事件處理,這將為事件交互處理帶來(lái)更多的可擴(kuò)展性。
【編輯推薦】
- Flex事件機(jī)制中事件注冊(cè)通道和觸發(fā)方法
- 深入剖析Flex事件機(jī)制
- Flex框架中Cairngorm和Mate的優(yōu)點(diǎn)大比拼
- FlexBuilder3.0與Eclipse3.4的完美結(jié)合
- 解析Flex應(yīng)用開(kāi)發(fā)步驟 新特性和技術(shù)框架