<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ā)生事件時,該事件在事件流的三個階段中移動:
    捕獲階段,該階段從顯示列表層次結(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 類允許顯示列表上的任何對象都是一個事件目標(biāo),同樣允許使用 IEventDispatcher 接口的方法。 
    事件目標(biāo)是 Flash ® Player 事件模型的重要組成部分。 

    事件目標(biāo)是事件如何通過顯示列表層次結(jié)構(gòu)這一問題的焦點(diǎn)
    當(dāng)發(fā)生鼠標(biāo)單擊或按鍵等事件時,F(xiàn)lash Player 會將事件對象調(diào)度到從顯示列表根開始的事件流中
    然后該事件對象在顯示列表中前進(jìn),直到到達(dá)事件目標(biāo),然后從這一點(diǎn)開始其在顯示列表中的回程
    在概念上,到事件目標(biāo)的此往返行程被劃分為三個階段:
    、、捕獲階段包括從根到事件目標(biāo)節(jié)點(diǎn)之前的最后一個節(jié)點(diǎn)的行程,
    、、目標(biāo)階段僅包括事件目標(biāo)節(jié)點(diǎn),
    、、冒泡階段包括回程上遇到的任何后續(xù)節(jié)點(diǎn)到顯示列表的根。
    通常,使用戶定義的類能夠調(diào)度事件的最簡單方法是擴(kuò)展 EventDispatcher。 如果無法擴(kuò)展(即,如果該類已經(jīng)擴(kuò)展了另一個類),則可以實(shí)現(xiàn) IEventDispatcher 接口,創(chuàng)建 EventDispatcher 成員,并編寫一些簡單的掛鉤,將調(diào)用連接到聚合的 EventDispatcher 中。
    二、說明 首先明確幾個概念
    1、顯示列表根:假如你有abc 三個panel c在b中 b在a中這樣的嵌套關(guān)系 那么c-->b-->a  a就是列表的根
    2、目標(biāo):假如你在c上發(fā)了一個事件那么c就是事件的目標(biāo) 有些復(fù)雜控件有click事件 不過發(fā)事件的目標(biāo)不是它本身 那個currenttarget才是它本身
    3、事件傳遞的流程:首先你派發(fā)事件在c上 事件首先從a-->b-->c-->b-->a這樣一個完整的循環(huán)
    4、捕獲階段:事件在a-->b的這個階段(注意和b-->a不同)
    5、目標(biāo)階段 僅當(dāng)事件到達(dá)c的時候
    6、冒泡階段 b-->a這樣經(jīng)過的階段
    三、具體應(yīng)用
    當(dāng)你在c上面派發(fā)了一個事件  然后你想在c的頂層a上監(jiān)聽到
    你可能這么做
    首先你在c上this.dispatchEvent(new Event("cevent",false)); 這樣發(fā)了一個事件
    藍(lán)色字體 意味著這個事件只會在捕獲和目標(biāo)階段 a->b->c
    然后你在a上監(jiān)聽這個事件 a.addEventListener("cevent",function():void{trace("原始論壇目標(biāo)發(fā)出的事件");},false);
    紅色字體 意味著你打算 讓偵聽器只在目標(biāo)或冒泡階段處理事件 就是c->b->a
    四、簡單說來就是 你發(fā)出的事件走的是a->b->c的階段 而你偵聽只想偵聽b->a階段c只走了一次所以不會檢測到c的事件
    任何一個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
      你娘里個大雪碧 里面會有common這個文件夾嗎 不知道還尼瑪在這瞎比比 純尼瑪誤導(dǎo)人 我最惡心的就是這樣沒事裝逼的人 艸
    • --cao
    • 4.?re: tomcat7的配置
    • 從哪抄來的,是抄的,你也說聲啊,要不自己測試下也可以,害人測試半天。
    • --ftp123
    • 5.?re: tomcat7的配置
    • %TOMCAT_HOME%\common\lib 從tomcat6.0開始已經(jīng)沒有common文件夾了,直接用\lib,害我找了半天common文件夾啊,趕快改過來吧
    • --寒澈

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 69av免费视频| 叮咚影视在线观看免费完整版| 91香蕉国产线在线观看免费| 日日噜噜噜噜夜夜爽亚洲精品| 日韩在线视频免费| 久久久久国产成人精品亚洲午夜 | 国产精品免费视频观看拍拍| 日韩免费视频网站| 色窝窝亚洲AV网在线观看| 在线免费视频一区二区| 亚洲αⅴ无码乱码在线观看性色| 女人18毛片水真多免费播放| 麻豆亚洲AV成人无码久久精品| 亚洲国产精品成人网址天堂| aa级毛片毛片免费观看久| 亚洲成av人影院| 99久久精品免费精品国产| 亚洲婷婷在线视频| 免费观看美女裸体网站| 无遮挡国产高潮视频免费观看| 337p日本欧洲亚洲大胆裸体艺术| 久久精品私人影院免费看| 亚洲日本在线免费观看| 最新69国产成人精品免费视频动漫| 色噜噜狠狠色综合免费视频| 亚洲精品高清国产一线久久| 4444www免费看| 亚洲国产成人久久精品软件 | 亚洲AV乱码一区二区三区林ゆな| h片在线免费观看| 色九月亚洲综合网| 亚洲欧洲成人精品香蕉网| 亚洲视频免费观看| 日韩亚洲人成网站| 久久亚洲精品中文字幕无码| 最近的中文字幕大全免费版| jizz日本免费| 久久精品国产亚洲av麻豆图片| 亚洲精品线路一在线观看| 国产一卡二卡四卡免费| 日韩免费码中文在线观看|