阻止Touch事件从另一个精灵下面开火

时间:2011-12-06 21:17:48

标签: flash actionscript-3 flash-builder flash-builder4.5

我正在尝试制作一个可以通过拖动背景图像来平移的视频。

以下是我所做的:http://students.info.uaic.ro/~tudor.berechet/0sandbox/aperture/science/testing/fatChance.html

请注意,我隐藏了鼠标光标并将其替换为2个自定义光标。

问题是,附加到背景的事件(即触摸事件)即使鼠标位于该背景前面的精灵/动画片段(猴子或统计数据)上也会触发。并且统计数据甚至不在gameLayer(猴子和bg以及鼠标光标所在的位置)。尝试拖动周围的数据,并看到背景和其他一切平移(这是不需要的)。此外,我需要删除自定义光标,并在鼠标不在背景上时显示常规光标(即,当它在猴子或统计数据上时,或者我将来/将会拥有的任何新精灵)。

现在我暂时没有使用过闪存,而且我从一开始就不是专家,但是如果他们的发件人被埋在其他东西之下,这种事件是否正常发生?

我如何改变这种行为?

PS:我已将源附加到上面链接中的.swf。

[编辑] 此外,如果这与任何事情有关,我使用Starling作为我的GameLayer。

[EDIT2] 看来我还没有说清楚。我只希望舞台可以拖动IFF鼠标直接在背景上。只要鼠标和背景之间有一个精灵,背景事件就不应该触发,所以我可以改变光标并与所述精灵交互。

1 个答案:

答案 0 :(得分:2)

如果您希望事件不通过猴子,您可以使用stopPropagation()。因此,向猴子添加(或更新)事件监听器,并对其进行编辑,以便e.stopPropagation()是事件处理程序的第一行。

private function _touchHandler(e:TouchEvent):void
{
    e.stopPropagation();
    // any other code for touching your monkey :P ...
}

对于您想要停留在其中的任何其他活动,请执行相同操作。