Flash / Actionscript问题:MouseEvents可以同时针对多个事物吗?

时间:2009-04-11 17:54:35

标签: flash actionscript

我有一个特殊的画布类覆盖我的整个舞台,下面一层有一堆Sprite热点。如果我将热点放在与我的画布相同的图层上,如果我的鼠标位于其中一个热点内,则画布不会注册MOUSE_DOWN事件,因为热点是目标。但是,如果我将热点保留在较低层,则画布将处理所有MouseEvents。有没有办法让MouseEvents定位多个目标,以便画布和热点都响应MouseEvents? (画布是一个位图绘制类,热点应该在光标触摸它们或点击它们时触发。)

2 个答案:

答案 0 :(得分:1)

ActionScript同时具有事件冒泡和事件捕获功能。这意味着您可以从包含元素或子元素开始侦听事件。您只需要创建正确类型的事件侦听器。捕获开始捕获父元素的事件,因为它向下移动子元素链直到它到达触发事件的元素。事件冒泡开始侦听孩子的事件并向上移动到父母。

addEventListener的第三个参数useCapture确定你是想要冒泡还是捕捉。

听起来你想要事件冒泡,所以你想将useCapture设置为false。将在子项和父项上触发事件侦听器。

Event Capturing and Bubbling

答案 1 :(得分:1)

apphacker做对了。

您可能还有两件事可能会感兴趣:

mouseChildren属性 和getObjectsUnderPoint()方法

祝你好运