Flex事件分發(fā)
本文和大家重點(diǎn)討論一下Flex事件分發(fā)的概念,在分發(fā)事件時(shí),將會(huì)分發(fā)一個(gè)事件對(duì)象出去。不管是那個(gè)事件類,都是繼承自flash.events.Event對(duì)象的,他包含一些比較重要的屬性,type和bubbles。
Flex事件分發(fā)
最終繼承自EventDispatcher的對(duì)象都會(huì)含有dispatchEvent這個(gè)方法,他有一個(gè)參數(shù),事件對(duì)象。之前說(shuō)到的事件注冊(cè)通道,他只是一個(gè)通道,實(shí)際上事件是由這個(gè)方法來(lái)分發(fā)出去的,通道只是一個(gè)管道而已。
他的作用就是分發(fā)一個(gè)事件對(duì)象,他的分發(fā)是沒(méi)有目的的,一種廣播形式的,F(xiàn)lex的事件監(jiān)聽(tīng)線程會(huì)接收到各種各樣的事件(我們稱之為捕獲事件,這在后面會(huì)介紹到),那么哪種才是你要的事件,標(biāo)識(shí)就通過(guò)事件的type屬性來(lái)區(qū)分。
自定義Flex事件分發(fā)
這部分就不長(zhǎng)篇大論了,因?yàn)楦魑粦?yīng)該已經(jīng)掌握了事件的原理,因此貼出演示源碼,并進(jìn)行些簡(jiǎn)單的解釋。
1.自定義Flex事件components/MyEventTest.as
- packagecomponents
- {
- importmx.events.FlexEvent;
- publicclassMyEventTestextendsFlexEvent
- {
- publicstaticconstONCHANGE:String="onChange";
- publicvareventInfo:String;//自定義的事件信息
- publicfunctionMyEventTest(s:String){
- super(s);//如果在構(gòu)造時(shí)不設(shè)bubbles,默認(rèn)是false,也就是不能傳遞的。
- eventInfo="這個(gè)事件是:"+s;
- }
- }
- }
2.自定義組件components/ComponentForEvent.as
- packagecomponents
- {
- importflash.events.EventDispatcher;
- //這個(gè)就是聲明事件注冊(cè)通道的方法了。name是事件對(duì)應(yīng)的名稱,也就是之前提到的type。Type是該事件的類
- [Event(name="onChange",type="components.MyEventTest")]
- publicclassComponentForEventextendsEventDispatcher
- {
- privatevarname:String;
- publicfunctionchangeName(newName:String){
- this.name=newName;
- dispatchEvent(newMyEventTest(MyEventTest.ONCHANGE));
- }
- }
- }
3.自定義Flex事件分發(fā)中App.mxml代碼
- <?xmlversionxmlversion="1.0"encoding="utf-8"?>
- <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"
- layout="absolute"xmlns:comp
- >
- <mx:Script>
- <![CDATA[
- importmx.controls.Alert;
- privatefunctionchangeName(){
- cfe.changeName("新名稱");
- }
- ]]>
- </mx:Script>
- <mx:Buttonidmx:Buttonid="testBtn"click="changeName()"label="測(cè)試"/>
- <components:ComponentForEvent
- id="cfe"/>
- </mx:Application>
【編輯推薦】
- 解析Flex事件機(jī)制中Flex事件分發(fā)和監(jiān)聽(tīng)
- FlexBuilder4十大新特性閃亮登場(chǎng)
- Flex框架中Cairngorm和Mate的優(yōu)點(diǎn)大比拼
- FlexBuilder3.0與Eclipse3.4的完美結(jié)合
- 解析Flex應(yīng)用開(kāi)發(fā)步驟 新特性和技術(shù)框架