Flash中的事件冒泡

时间:2009-07-03 11:14:14

标签: flash actionscript

我有一个使用on(release){....}

捕获click事件的剪辑

在这个片段中,我有一个按钮,它也可以点击(发布){...}

问题是按钮永远不会收到释放事件。我相信事件不会冒泡,被父容器捕获和处理。如何将其冒泡到按钮(我需要触发两个事件,因为一个动画,另一个打开一个页面)。

3 个答案:

答案 0 :(得分:2)

你使用on(发布)语法的事实告诉我你使用的是一种非常古老的编码风格,而且你正在为as2编码。如果这是错误的抱歉。如果这是正确的,我认真地建议,如果你可以(某些客户仍然因某些原因需要flash 8兼容的swfs),你应该尝试在AS3而不是旧的AS2中提出解决方案。在我看来,当as2很好地解决问题时,学习as2有点浪费时间。我很欣赏您有时需要使用旧方法。

所以这不是问题,也不是问题。实质上,一旦将交互式元素放在另一个交互式元素中,您将无法处理内部元素上发生的事件。基本上,鼠标事件在第一个具有向其注册的事件的组件处理,也就是直接在其下面。然后单击操作停止查找更多项目。它阻止您通过一次点击接收多个事件。

我认为解决这个问题的一种方法(虽然按钮内的按钮是一个非常糟糕的可用性决定)将是一个非交互式容器n.b.对于as2一个MovieClip,然后在其中添加两个按钮,一个比另一个大,顶部较小。这意味着您可以单独处理对这两个元素的点击。

希望这有帮助

答案 1 :(得分:0)

尝试向剪辑和按钮添加事件侦听器。

答案 2 :(得分:0)

你的代码显然是AS2,因为AS3不再支持这种语法......

事件冒泡仅适用于AS3 ...在AS2中,如果动画片段/按钮具有针对任何鼠标事件的注册处理程序/回调,则任何子项都不会接收任何事件......

我曾经为AS2写了一个库,解决了问题......如果你真的需要坚持AS2,那么我可以寻找它......但正如詹姆斯所说,你真的不应该......

格尔茨

back2dos