<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

       :: 首頁(yè) :: 新隨筆 ::  :: 聚合  :: 管理
      自定義事件只是一個(gè)"特別"的ActionScript類。開(kāi)發(fā)者創(chuàng)建自定義事件無(wú)外乎完成如下幾個(gè)任務(wù):繼承flash.events.Event、定義事件屬性、編寫(xiě)類構(gòu)造器、重載clone方法。

    一 繼承Event帶參數(shù)自定義事件

      1.創(chuàng)建AS事件類SwitchLightEvent


      2.創(chuàng)建事件觸發(fā)組件LightConsole


      3.創(chuàng)建應(yīng)用CustomTraficLight



    創(chuàng)建自定義事件5個(gè)步驟

    1.使用ActionScript創(chuàng)建自定義事件  

      定義屬性
      開(kāi)發(fā)者通常希望"消息"能夠攜帶更多的信息,提供更多的數(shù)據(jù)。在自定義事件中,通過(guò)定義屬性,可以讓事件攜帶更多的信息。


      編寫(xiě)構(gòu)造器


      類當(dāng)然離不開(kāi)構(gòu)造器。事件類的構(gòu)造器要完成兩項(xiàng)任務(wù)。

      (1). 調(diào)用Super()

      通過(guò)Super()調(diào)用父類的構(gòu)造器,以初始化從父類繼承的屬性等。通常情況下,子類構(gòu)造器應(yīng)該首先調(diào)用Super()方法。當(dāng)然,如果沒(méi)有為子類編寫(xiě)構(gòu)造器(不添加構(gòu)造器方法),編譯器會(huì)自動(dòng)添加一個(gè)構(gòu)造器,并且也會(huì)調(diào)用Super()。但是,我們?nèi)匀煌扑]編寫(xiě)構(gòu)造器,并且顯式地調(diào)用Super()方法。


      (2). 設(shè)置屬性


      事件類型是最常用到的事件屬性。Super()可以接受String類型的參數(shù),由此設(shè)置父類事件中繼承來(lái)的事件類型屬性(event.type)。

    除了事件類型外,事件的其他自定義屬性可以作為構(gòu)造器的參數(shù)傳入,在構(gòu)造器中完成初始化。更靈活的是,這些屬性類型不僅僅局限于String、Number等基本類型,還可以是任何自定義類。


      重載clone方法


      創(chuàng)建自定義事件的最后一步是重載父類的clone方法,返回新的Event對(duì)象。當(dāng)觸發(fā)事件時(shí),即dispatchEvent(event)時(shí),EventDispatcher會(huì)自動(dòng)調(diào)用clone方法獲取新的Event對(duì)象。

    重載clone方法將復(fù)制自定義類的所有屬性。如果你沒(méi)有對(duì)自定義事件類中添加的所有屬性進(jìn)行賦值的話,那么當(dāng)偵聽(tīng)器處理觸發(fā)的自定義事件時(shí),就不會(huì)獲得正確的屬性值。

    2.使用元數(shù)據(jù)[Event]定義事件

      通過(guò)[Event]元數(shù)據(jù),開(kāi)發(fā)者可以為組件定義事件。編譯器能夠把這些自定義的事件識(shí)別為MXML標(biāo)簽屬性。使用[Event]既可以為ActionScript組件定義事件,也可以為MXML組件定義事件。
       

     

    //[Event(name="eventName",type="package.eventType")] 

    //name說(shuō)明了事件的名稱,而type表明了該名稱對(duì)應(yīng)的事件類型。事件偵聽(tīng)器使用name進(jìn)行注冊(cè)。

     


      為ActionScript組件定義事件


    //[Event]元數(shù)據(jù)必須置于包(package)定義之內(nèi),類(class)定義之上
                
                
    package events{
                    
                    [Event(name
    ="sampleEvent", type="myEvents.SampleEvent")]
                    
                    
    public class MyComponent extends UIComponent{
                        
    //
                    }
                }

     


      為MXML組件定義事件

    <fx:Metadata>
            [Event(name="SwitchLightEvent", type="CustomTraficLight.events.SwitchLightEvent")]
        
    </fx:Metadata>


    3.觸發(fā)事件

    4.創(chuàng)建事件偵聽(tīng)器

     

    主站蜘蛛池模板: 中文字幕无码免费久久99| 暖暖免费日本在线中文| 77777_亚洲午夜久久多人| A国产一区二区免费入口| 久久亚洲高清综合| 国产一级在线免费观看| 亚洲日韩中文无码久久| 在线观看肉片AV网站免费| 日韩a在线观看免费观看| 日韩色日韩视频亚洲网站| 四虎成人精品在永久免费| 男人扒开添女人下部免费视频| 成人伊人亚洲人综合网站222| 乱淫片免费影院观看| 亚洲欧洲自拍拍偷午夜色无码| 国产婷婷成人久久Av免费高清| 免费高清小黄站在线观看| 亚洲Av永久无码精品一区二区| 久久免费美女视频| 7777久久亚洲中文字幕蜜桃| 美女视频黄免费亚洲| 亚洲aⅴ无码专区在线观看| 亚洲AV无码乱码在线观看| 成人毛片100免费观看| 亚洲精品在线不卡| 好大好深好猛好爽视频免费| 一级做a爰全过程免费视频毛片| 亚洲gv白嫩小受在线观看| 久久精品免费全国观看国产| 亚洲熟妇AV日韩熟妇在线| 51视频精品全部免费最新| 亚洲日韩在线中文字幕综合| 亚洲乱码国产乱码精品精| 免费大片黄在线观看yw| 黄色网页免费观看| 亚洲伊人tv综合网色| 国产高清免费的视频| 亚洲一区二区三区在线观看网站| 免费99热在线观看| 色哟哟国产精品免费观看| 久久久久久亚洲AV无码专区|