<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)器

     

    主站蜘蛛池模板: 亚洲av产在线精品亚洲第一站| 亚洲AV午夜成人片| 亚洲 暴爽 AV人人爽日日碰| 91福利视频免费观看| 久久亚洲AV无码精品色午夜麻| 国产一级黄片儿免费看| 国产aⅴ无码专区亚洲av麻豆| 春意影院午夜爽爽爽免费| 亚洲日本一区二区三区在线不卡| 四虎永久在线精品免费一区二区| 亚洲国产精品一区二区九九 | 精品亚洲一区二区三区在线观看| 免费无遮挡无遮羞在线看| 免费日韩在线视频| 日韩精品免费一线在线观看| 国产自偷亚洲精品页65页| 免费人成在线观看视频高潮| 亚洲免费精彩视频在线观看| 99久久免费看国产精品| 亚洲va成无码人在线观看| 成人a免费α片在线视频网站| 国产亚洲视频在线观看| 亚洲三区在线观看无套内射| 99久久人妻精品免费二区| 亚洲国产一区二区三区在线观看| 国产成人精品免费直播| 中国一级毛片免费看视频| 亚洲天堂中文字幕| 性色av免费观看| 国产精品免费久久| 亚洲视频免费在线播放| 日韩高清免费在线观看| gogo免费在线观看| 亚洲AV中文无码字幕色三| 国产一卡二卡3卡四卡免费| 国产精品亚洲综合一区在线观看| 国产AV无码专区亚洲精品| 91情侣在线精品国产免费| 一级A毛片免费观看久久精品| 亚洲色四在线视频观看| 国产高清在线免费视频|