flash - as3 停止事件传播

标签 flash actionscript-3

当我在事件监听器中添加新的事件监听器时,我无法让事件在 as3 中停止传播。当我不希望的时候,我的第二个事件监听器被调用。

this.addEventListener(MouseEvent.CLICK, firstlistener);

function firstlistener(e:Event)
{
    //do stuff
    e.stopImmediatePropagation();
    this.addEventListener(MouseEvent.CLICK, secondlistener);
}

最佳答案

您可以同时添加firstListenersecondListener,但将第一个的优先级设置为更高。这样它就可以有条件地停止传播到第二个。

this.addEventListener(MouseEvent.CLICK, firstlistener, false, 100);
this.addEventListener(MouseEvent.CLICK, secondlistener);

function firstlistener(e:Event)
{
    if (...condition...) {
        e.stopImmediatePropagation();
    }
}

但是如果您可以控制两个监听器,那么最好有条件地从第一个监听器调用第二个监听器或广播第二个监听器,这是不同的。比使用 stopImmediatePropagation 更简洁。

关于flash - as3 停止事件传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3291953/

相关文章:

flash - 调用 example Function() 和 example Function.call() 有什么区别?

php - 您在应用程序中使用什么 MySQL 日期/时间类型,为什么?

javascript - 外部接口(interface)。 addcallback 在本地有效,但在服务器上无效?

flash - 分几次加载图像

javascript - JavaScript 中的音频指纹识别

actionscript-3 - 无法将youtube加载到Flash中时获取FS按钮,fs = 1不起作用

apache-flex - 访问 DataGrid 中的 ItemRenderer

flash - 第1152章 : A conflict exists with inherited definition in namespace public

c# - 鼠标自动化和与 Flash 应用程序交互时出现问题

javascript - 如何在 Flash 10 "without"用户交互中打开文件对话框