自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

解析Flex事件執(zhí)行流程

開發(fā) 后端
本文向大家簡單介紹一下Flex事件機制,F(xiàn)lex事件執(zhí)行流程大致可以分為三個階段,分別是捕獲階段,目標階段和冒泡階段。

本文和大家重點討論一下Flex事件機制,F(xiàn)lex事件執(zhí)行流程大致可以分為三個階段,下面為你一一介紹。

Flex事件機制

Flex事件執(zhí)行流程大致可以分為三個階段。

第一階段為捕獲階段

第二階段為目標階段

第三階段為冒泡階段

所以:addEventListener方法注冊的監(jiān)聽器有兩種,第一種是處理捕獲階段的監(jiān)聽器(addEventListener的第三個參數(shù)useCapture 為true)
第二種就是處理目標和冒泡階段的監(jiān)聽器(第三個參數(shù)useCapture 為false)。

第一階段:捕獲階段流程

Flex會去查找事件的觸發(fā)源,它是通過根顯示元素(root display object)逐層向下尋蹤,并從上往下,依次觸發(fā)這些節(jié)點的當前Flex事件的處理函數(shù)(如果他們都用捕獲階段的監(jiān)聽器注冊了這個事件)直到找到事件發(fā)起源頭的父節(jié)點。并觸發(fā)完父節(jié)點的這個事件為止。但它不會調(diào)用事件觸發(fā)源節(jié)點的事件。

例如:
test.mxml文件下:
application節(jié)點--vbox(id=vb)節(jié)點--button(id=bt)節(jié)點。

如果在application的creationComplete中:將以上所有組件的click事件注冊為捕獲監(jiān)聽器。
如:
 

  1. addEventListener(MouseEvent.CLICK, btnClick2, true);    
  2. vb.addEventListener(MouseEvent.CLICK, btnClick3,true);    
  3. bt.addEventListener(MouseEvent.CLICK, btnClick4,true);   


如果在bt上點擊,執(zhí)行流程如下:
Flash Player會去查找Flex事件的觸發(fā)源(bt),通過根顯示元素(root display object)(這里就是application)逐層向下尋蹤,并從上往下,依次調(diào)用它們的click事件(如果他們都注冊了捕獲階段的click事件)直到找到事件的發(fā)起源頭的父節(jié)點,上面例子中會找到vb,并執(zhí)行完vb的click事件后,就不再查找下邊的bt組件和執(zhí)行它的click事件。

第二階段:

一般情況下,第二階段的目標階段,也是執(zhí)行mxml文檔的目標節(jié)點配置的那個事件處理函數(shù),然后再處理對應的監(jiān)聽器(處理目標和冒泡階段的監(jiān)聽器)注冊的那個處理函數(shù)。

 如果文檔該節(jié)點,沒有配置Flex事件處理,則只執(zhí)行通過addEventListener注冊的事件處理方法,否則,如果配置了,就先執(zhí)行mxml的配置函數(shù)處理,接著處理通過監(jiān)聽器注冊的函數(shù)。

最后就是冒泡階段:
這個階段與捕獲階段相反,它會從從目標節(jié)點的父節(jié)點開始依次向上查找并執(zhí)行父節(jié)點的mxml配置事件和通過監(jiān)聽器注冊的事件處理函數(shù)。(這些處理函數(shù)也是用處理目標和冒泡階段的監(jiān)聽器注冊的)

也就是說:捕獲階段的事件觸發(fā)只能是用處理這個階段的監(jiān)聽器去注冊。目標和冒泡階段的事件觸發(fā),也只能是處理這個階段的監(jiān)聽器去注冊。如果,要讓同一個事件,在捕獲階段或目標和冒泡階段都執(zhí)行的話,需要用addEventListener注冊兩次,將第三個參數(shù)useCapture true和false各設置一次。

【編輯推薦】

  1. Flex事件處理三要素
  2. 從Flex Builder更名看Flash平臺戰(zhàn)略
  3. Flex及FlexBuilder2.0開發(fā)環(huán)境詳解
  4. FlexBuilder3.0與Eclipse3.4的完美結(jié)合
  5. 學習筆記 FlexBuilder2.0中如何使用基于Lists的控件 

 

 

責任編輯:佚名 來源: csdn.net
相關(guān)推薦

2010-08-09 11:14:36

Flex事件處理

2010-08-06 10:03:42

Flex事件

2010-07-29 10:40:12

2010-08-06 10:24:56

Flex事件分發(fā)

2010-08-04 14:02:08

Flex事件機制

2010-08-12 13:59:37

FlexList控件

2010-08-13 14:05:24

Flex事件機制

2010-08-04 13:52:53

Flex事件機制

2010-08-02 09:43:00

Flex應用

2010-08-12 15:35:44

Flex事件機制

2010-08-06 09:45:50

Flex事件機制

2010-08-04 11:15:22

Flex事件處理

2010-07-29 10:33:59

Flex鍵盤事件

2010-07-29 10:27:30

Flex鍵盤事件

2010-08-04 14:07:59

Flex事件機制

2010-08-11 13:28:46

Flex行為

2010-08-04 14:34:35

Flex編程模型

2010-08-13 14:19:44

Flex綁定機制

2010-08-12 09:11:09

Flex彈出窗口

2010-08-02 10:18:06

Flex3教程
點贊
收藏

51CTO技術(shù)棧公眾號