我有一个剪辑,它捕捉点击事件使用(发布){ ....}
在这个剪辑中,我有一个按钮,它也可以用on(release) {...}捕捉点击
问题是按钮永远不会收到release事件。我相信事件不是冒泡的,被父容器捕获和处理。我如何才能将它冒泡到按钮上(我需要触发两个事件,因为一个事件触发动画,另一个事件打开页面)。
发布于 2009-07-03 12:49:14
你使用on(release)语法的事实告诉我,你使用的是一种非常老的编码风格,而且你是在为as2编码。如果这是错误的,对不起。如果这是正确的,我郑重建议,如果你可以(一些客户仍然需要兼容flash 8的swfs,出于某种原因),你应该尝试并提出一个解决方案,在AS3而不是旧的AS2。在我看来,当as2已经走到尽头的时候,学习as2有点浪费时间。不过,我很欣赏您有时需要使用旧的方法。
所以,就这个问题而言,这并不重要。本质上,一旦你把一个交互式元素放入另一个交互式元素中,你就不能处理内部元素上发生的事件。基本上,鼠标事件是在第一个注册了事件的组件上处理的,也就是在它的正下方。则单击操作将停止查找更多项。它阻止您从一次单击中接收多个事件。
我认为解决这个问题的一种方法(尽管按钮中的按钮是一个非常糟糕的可用性决定)将是有一个非交互式容器n.b。对于as2,添加一个MovieClip,然后在其中添加两个按钮,一个比另一个大,小的在顶部。这意味着您可以分别处理对这两个元素的单击。
希望这能有所帮助
发布于 2009-07-03 11:24:55
尝试将事件侦听器同时添加到剪辑和按钮。
发布于 2009-07-03 13:03:45
您的代码显然是AS2,因为AS3不再支持此语法...
事件冒泡仅适用于AS3 ...在AS2中,如果电影剪辑/按钮为任何鼠标事件注册了处理程序/回调,那么孩子们将永远不会收到任何事件...
我曾经为AS2写过一个库,解决了这个问题……如果你真的需要坚持使用AS2,那么我可以去找它...但正如詹姆斯所说你真的不应该..。
问候
back2dos
https://stackoverflow.com/questions/1078893
复制相似问题