如何在冒泡阶段传播事件?

时间:2010-04-20 11:39:34

标签: flex

           

这是我的代码,我想通过此订单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');});
}

1 个答案:

答案 0 :(得分:0)

如果您想先在父母身上触发事件监听器,那么您应该使用捕获阶段,而不是冒泡阶段。

尝试使用:

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

useCapture参数设置为true

事件传播的顺序是:

  1. 捕获阶段,从 Parent传播 - >子的;然后
  2. 目标阶段(currentTarget == target);最后
  3. 冒泡阶段,从 Child传播回来 - >父