Flex 中的Event Propogation

          Flex中的Event傳遞主要有三個階段:capturing, targeting, bubbling。比如一個Button收到了一個消息,首先會從其根父UI Object上開始逐步Capture直到其父Object,然后由該Button履行Target階段,最后再以Capture相反的方向Bubble。當然這些階段都是相對DisplayObject來說的,對于其他的Object比如Socket,Event只會交給Target對象處理。

          先來看Capture階段:

          這個階段是從父到子的一個過程,典型應用:myPanel.addEventListener(MouseEvent.MOUSE_DOWN, clickHandler, true);

          注意第三個參數useCapture被設為true,表示clickHandler只想處理Capture過程的事件,如果還想處理bubble階段的事件,那么必須再以useCapture=false調用一次addEventListener

          Flex Develop Guide中有一句話:The capturing phase is very rarely used, and it can also be computationally intensive. By contrast, bubbling is much more common.我還不是特別理解,先寫下來再說吧。

          再看Target階段:

          這個很簡單,由DispatchEvent的對象直接處理。

          然后是Bubble階段。Bubble階段只有bubbles屬性為true的Event才會有這個過程,包括change, click, doubleClick, keyDown, keyUp, mouseDown, and mouseUp等事件。對于自定義事件,bubbles能否設成true還未知,因為它似乎是只讀的,還有待驗證。

          posted on 2007-09-19 22:51 雁過無痕 閱讀(687) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2007年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          導航

          統計

          常用鏈接

          留言簿(7)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 嘉兴市| 岑巩县| 芷江| 九江市| 娱乐| 大余县| 南宁市| 潞城市| 临朐县| 西林县| 贵州省| 合作市| 垣曲县| 鹿泉市| 科技| 米脂县| 蓝田县| 定日县| 惠州市| 宣城市| 高邮市| 乐亭县| 白玉县| 德安县| 五家渠市| 遵义市| 桦甸市| 仁寿县| 宾阳县| 馆陶县| 七台河市| 商南县| 准格尔旗| 治县。| 石楼县| 巩义市| 兴仁县| 沅陵县| 华坪县| 东源县| 南靖县|