2010-04-20 31 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. 鼓泡阶段,它从传播回来 - >父项