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

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

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

    云下的天空

    堅持 隨心而動 走自己的路

     

    (轉載)冒泡事件理解2

    1.

    項目 右鍵 新建 包

    右鍵單擊新建的包,新建 actionscript類

    代碼如下(代碼1)

    package btnEvents
    {
        import flash.events.Event;
        
        public class btnEvent1 extends Event
        {
            public static var EVENT_NAME:String="customEvent";

            //該事件所攜帶的數據
            public var EventData:String;        
            public function btnEvent1(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
            {
                super(type, bubbles, cancelable);
            }
        }
    }

     

    2.

    主MXML文件如下所示

    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
                   xmlns:s="library://ns.adobe.com/flex/spark" 
                   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:Modules="Modules.*"
                   creationComplete="init()"
                   >

        <fx:Script>
            <![CDATA[
                import btnEvents.btnEvent1;
                private function init():void{
                    this.addEventListener(btnEvent1.EVENT_NAME,appCatchMyEvent,true);
                    this.panel1.addEventListener(btnEvent1.EVENT_NAME,panelCatchEvent,true);
                }
                private function sendEvent(flag:int):void{
                    var Event:btnEvent1=new btnEvent1(btnEvent1.EVENT_NAME);
                    if(flag == 1){
                        Event.EventData = "內部按鈕";
                        btn1.dispatchEvent(Event);//將事件分派到事件流中
                    }else{
                        Event.EventData = "外部按鈕";
                        btn2.dispatchEvent(Event);//將事件分派到事件流中
                    }
                }
                private function appCatchMyEvent(par_event:btnEvent1):void{
                    label1.text += par_event.currentTarget.id+par_event.EventData;//currentTarget是傳播路徑上的當前捕捉者
                }
                private function panelCatchEvent(par_event:btnEvent1):void{
                    label1.text += par_event.currentTarget.id+par_event.EventData;
                }
            ]]>
        </fx:Script>

        <fx:Declarations>
            <!-- 將非可視元素(例如服務、值對象)放在此處 -->
        </fx:Declarations>
        <s:Panel id="panel1" x="198" y="128" width="250" height="200">
            <s:Button click="sendEvent(1)" id="btn1" x="89" y="61" label="內部BTN"/>
        </s:Panel>
        <s:Button id="btn2" click="sendEvent(2)" x="378" y="360" label="外部BTN"/>
        <s:Label id="label1" x="198" y="66" text="事件來自~~~~" width="189"/>

    </s:Application>

    3.

    運行程序

    點擊“內部BTN:

    結果如圖所示

    image

    大家可以看到
    事件是從外層容器到內層容器依次執行的

     

    4.

    刷新頁面

    點擊“外部BTN”

    結果如圖所示

    image

    因為事件的引發者沒有在panl1中所以不會再觸發panel1的事件了

     

    以上說的都是非冒泡事件,事件的執行順序是從外層容器到內層容器執行的

     

    5.

    如果要在事件冒泡階段捕捉事件

    創建事件的代碼為

    var Event:btnEvent1=new btnEvent1(btnEvent1.EVENT_NAME,true);//最后一個參數bubbles應為true

    事件監聽的代碼應如下

    this.panel1.addEventListener(btnEvent1.EVENT_NAME,panelCatchEvent,false);//最后一個參數useCapture是false

    這樣設置后就是冒泡事件,事件的執行順序是從內層容器到外層容器執行的

     

    6.

    如果即要捕捉非冒泡事件,又要捕捉冒泡事件

    那么

    創建事件的代碼為

    var Event:btnEvent1=new btnEvent1(btnEvent1.EVENT_NAME,true);//最后一個參數bubbles應為true

    同時,監聽事件的代碼還要設置兩次

    this.panel1.addEventListener(btnEvent1.EVENT_NAME,panelCatchEvent,true);//非冒泡監聽
    this.panel1.addEventListener(btnEvent1.EVENT_NAME,panelCatchEvent,false);//冒泡監聽

    這樣設置之后,事件先從外部執行到內部,在從內部執行到外部 

    原文鏈接:http://www.cnblogs.com/liulun/archive/2010/11/23/1885053.html



    posted on 2011-06-05 18:08 天空布藍 閱讀(418) 評論(0)  編輯  收藏 所屬分類: Flex4

    導航

    統計

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    Flex學習鏈接

    搜索

    •  

    最新評論

    • 1.?re: tomcat7的配置
    • 新建變量名: TOMCAT_HOME 應該為CATALINA_HOME
    • --houkai
    • 2.?re: tomcat7的配置
    • 確實是的@寒澈
    • --houkai
    • 3.?re: tomcat7的配置
    • @ftp123
      你娘里個大雪碧 里面會有common這個文件夾嗎 不知道還尼瑪在這瞎比比 純尼瑪誤導人 我最惡心的就是這樣沒事裝逼的人 艸
    • --cao
    • 4.?re: tomcat7的配置
    • 從哪抄來的,是抄的,你也說聲啊,要不自己測試下也可以,害人測試半天。
    • --ftp123
    • 5.?re: tomcat7的配置
    • %TOMCAT_HOME%\common\lib 從tomcat6.0開始已經沒有common文件夾了,直接用\lib,害我找了半天common文件夾啊,趕快改過來吧
    • --寒澈

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久久久久久综合日本亚洲| 西西人体大胆免费视频| 伊人久久国产免费观看视频| 美女视频黄a视频全免费网站色窝 美女被cao网站免费看在线看 | 国产成人亚洲综合一区 | 亚洲娇小性xxxx| 一道本在线免费视频| 特级做A爰片毛片免费69| 青青草原亚洲视频| 国产成人精品日本亚洲网址 | 免费无码AV电影在线观看| 久久精品国产精品亚洲色婷婷| jizzjizz亚洲日本少妇| 在线看片无码永久免费视频| 亚洲午夜福利在线观看| 最好2018中文免费视频| 青青青国产免费一夜七次郎| 亚洲av成人一区二区三区| a级毛片无码免费真人| 亚洲日韩一区二区三区| 国产又大又黑又粗免费视频| 深夜a级毛片免费视频| 亚洲中文字幕在线乱码| 最近免费视频中文字幕大全| 亚洲中文字幕日本无线码| 性色av无码免费一区二区三区| 亚洲国产一区二区视频网站| 老司机福利在线免费观看| 国产高清免费的视频| 亚洲女子高潮不断爆白浆| 24小时日本在线www免费的| 亚洲国产美女在线观看| 91九色精品国产免费| 亚洲香蕉在线观看| 又粗又黄又猛又爽大片免费| 美女视频黄a视频全免费网站色 | 亚洲视频在线免费观看| 亚洲宅男天堂a在线| 国产曰批免费视频播放免费s| 亚洲无人区视频大全| 成年女人免费v片|