2010-04-20 55 views
0

如何在冒泡階段傳播事件?

這是我的代碼,我想通過這個命令clickme,WINDOWID和PANID火災事件。

默認情況下它以相反的順序發生。


這裏是我的代碼:

import mx.controls.Alert; 

public function init() : void 
{ 
    window.addEventListener(MouseEvent.CLICK,function h() :void {mx.controls.Alert.show('window clicked');}); 
    panel.addEventListener(MouseEvent.CLICK,function h() :void {mx.controls.Alert.show('panel clicked');}); 
    btn.addEventListener(MouseEvent.CLICK,function h() :void {mx.controls.Alert.show('btn clicked');}); 
} 

回答

0

如果你想先觸發對父母的事件監聽器,那麼你應該使用捕捉階段,沒有冒泡階段。使用

嘗試:

interactiveObject.addEventListener(MouseEvent.CLICK, someClickHandler, true); 

其中useCapture參數設置爲true

事件傳播的順序是:

  1. 捕捉階段,從父傳播 - >子;那麼
  2. 目標階段(這是哪裏currentTarget == target);最後
  3. 鼓泡階段,它從傳播回來 - >父項