精通Flex 3.0――4.8.2 Event Flow事件流

  Event Flow(事件流)是ActionScript 3.0中處理事件響應的機制。事件對象創建後,被Flash Player分配給指定的目標事件。事件對象穿過Display List(顯示架構)的每個層次,到達目標事件。有些情況下,事件對象會以“起泡”的方式按原路線返回。這個在Display List中往返的過程叫做Event Flow(事件流)。事件流描述了事件對象如何在Display List中移動。Event Flow從概念上可以分爲三個階段,分別如下。

q      capture phase(獲取階段),這個階段由Stage(舞臺)上所有的目標結點的父結點組成。

q      target phase(目標階段),這個階段由單獨的目標結點組成。

q      bubbling phase(起泡階段),這個階段由從目標結點的父結點返回到舞臺的過程中相遇的結點組成。

組成Event Flow三個階段的結點在display list中的結構,如圖所示。

如果用戶單擊了子結點1Flash Player會發派一個事件對象到事件流中,如圖所示。這個事件對象的行程從Stage(舞臺)開始,向下移動到目標結點的父結點,然後才移動到目標結點“子結點1”,然後通過“起泡”的機制返回Stage。在返回Stage的行程中再次經過其父結點。

並不是每個事件對象都參與事件流的三個階段。有一些類型的事件,如enterFrame事件對象,被髮派到目標對象的時候不參與獲取和起泡階段。另外還有一些事件對象,他們的目標對象不在display list中,這樣的對象通過stock接口發派到目標對象,同樣這樣的事件對象不經過事件流的獲取和起泡階段。

發佈了65 篇原創文章 · 獲贊 0 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章