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

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

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

    云下的天空

    堅(jiān)持 隨心而動 走自己的路

     

    (轉(zhuǎn)載)冒泡事件理解

      原文鏈接:http://bbs.9ria.com/viewthread.php?tid=59522

    發(fā)生事件時(shí),該事件在事件流的三個(gè)階段中移動:
    捕獲階段,該階段從顯示列表層次結(jié)構(gòu)的頂部流動到目標(biāo)節(jié)點(diǎn)之前的節(jié)點(diǎn);
    目標(biāo)階段,該階段只包括目標(biāo)節(jié)點(diǎn);
    冒泡階段,該階段從目標(biāo)節(jié)點(diǎn)的后續(xù)節(jié)點(diǎn)沿顯示列表層次結(jié)構(gòu)向上往回流動。
    EventDispatcher 類實(shí)現(xiàn) IEventDispatcher 接口,并且是 DisplayObject 類的基類。 EventDispatcher 類允許顯示列表上的任何對象都是一個(gè)事件目標(biāo),同樣允許使用 IEventDispatcher 接口的方法。 
    事件目標(biāo)是 Flash ® Player 事件模型的重要組成部分。 

    事件目標(biāo)是事件如何通過顯示列表層次結(jié)構(gòu)這一問題的焦點(diǎn)
    當(dāng)發(fā)生鼠標(biāo)單擊或按鍵等事件時(shí),F(xiàn)lash Player 會將事件對象調(diào)度到從顯示列表根開始的事件流中
    然后該事件對象在顯示列表中前進(jìn),直到到達(dá)事件目標(biāo),然后從這一點(diǎn)開始其在顯示列表中的回程
    在概念上,到事件目標(biāo)的此往返行程被劃分為三個(gè)階段:
    、、捕獲階段包括從根到事件目標(biāo)節(jié)點(diǎn)之前的最后一個(gè)節(jié)點(diǎn)的行程,
    、、目標(biāo)階段僅包括事件目標(biāo)節(jié)點(diǎn),
    、、冒泡階段包括回程上遇到的任何后續(xù)節(jié)點(diǎn)到顯示列表的根。
    通常,使用戶定義的類能夠調(diào)度事件的最簡單方法是擴(kuò)展 EventDispatcher。 如果無法擴(kuò)展(即,如果該類已經(jīng)擴(kuò)展了另一個(gè)類),則可以實(shí)現(xiàn) IEventDispatcher 接口,創(chuàng)建 EventDispatcher 成員,并編寫一些簡單的掛鉤,將調(diào)用連接到聚合的 EventDispatcher 中。
    二、說明 首先明確幾個(gè)概念
    1、顯示列表根:假如你有abc 三個(gè)panel c在b中 b在a中這樣的嵌套關(guān)系 那么c-->b-->a  a就是列表的根
    2、目標(biāo):假如你在c上發(fā)了一個(gè)事件那么c就是事件的目標(biāo) 有些復(fù)雜控件有click事件 不過發(fā)事件的目標(biāo)不是它本身 那個(gè)currenttarget才是它本身
    3、事件傳遞的流程:首先你派發(fā)事件在c上 事件首先從a-->b-->c-->b-->a這樣一個(gè)完整的循環(huán)
    4、捕獲階段:事件在a-->b的這個(gè)階段(注意和b-->a不同)
    5、目標(biāo)階段 僅當(dāng)事件到達(dá)c的時(shí)候
    6、冒泡階段 b-->a這樣經(jīng)過的階段
    三、具體應(yīng)用
    當(dāng)你在c上面派發(fā)了一個(gè)事件  然后你想在c的頂層a上監(jiān)聽到
    你可能這么做
    首先你在c上this.dispatchEvent(new Event("cevent",false)); 這樣發(fā)了一個(gè)事件
    藍(lán)色字體 意味著這個(gè)事件只會在捕獲和目標(biāo)階段 a->b->c
    然后你在a上監(jiān)聽這個(gè)事件 a.addEventListener("cevent",function():void{trace("原始論壇目標(biāo)發(fā)出的事件");},false);
    紅色字體 意味著你打算 讓偵聽器只在目標(biāo)或冒泡階段處理事件 就是c->b->a
    四、簡單說來就是 你發(fā)出的事件走的是a->b->c的階段 而你偵聽只想偵聽b->a階段c只走了一次所以不會檢測到c的事件
    任何一個(gè)false改成true就可以了
    藍(lán)色改成true意味著事件在所有過程傳遞
    紅色改成true意味著偵聽捕獲階段
    再簡單說 新建事件不冒泡 默認(rèn)偵聽只偵聽冒泡

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

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    Flex學(xué)習(xí)鏈接

    搜索

    •  

    最新評論

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

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 一个人免费高清在线观看| 免费精品久久天干天干| 日本阿v免费费视频完整版| 亚洲的天堂av无码| 免费国产作爱视频网站| jlzzjlzz亚洲jzjzjz| 亚洲午夜久久久影院| 欧洲精品码一区二区三区免费看| 午夜亚洲国产成人不卡在线| 特级一级毛片免费看| 国产午夜亚洲精品午夜鲁丝片| CAOPORM国产精品视频免费| 亚洲一区AV无码少妇电影☆| 国产又黄又爽胸又大免费视频| 亚洲美女又黄又爽在线观看| 久久久免费精品re6| 国产精品四虎在线观看免费| 久久精品a亚洲国产v高清不卡| 中文字幕免费视频| 亚洲熟女精品中文字幕| 国产精品免费看香蕉| 黄色视频在线免费观看| 亚洲欧洲日韩不卡| 成人免费网站在线观看| 特级av毛片免费观看| 亚洲自偷自拍另类12p| 女人被弄到高潮的免费视频| 乱人伦中文视频在线观看免费| 亚洲人成中文字幕在线观看| 2019中文字幕在线电影免费| 亚洲精品无码日韩国产不卡av| 国产亚洲精品国看不卡| 国产曰批免费视频播放免费s| 久久久久亚洲国产AV麻豆| 国产亚洲一区二区三区在线| 成人AV免费网址在线观看| 无码人妻一区二区三区免费视频| 亚洲电影国产一区| 国产a级特黄的片子视频免费| 午夜免费福利片观看| 鲁死你资源站亚洲av|