Actionscript 3 如何在flash/flex中处理遮挡(重叠)显示对象上的鼠标事件?

Actionscript 3 如何在flash/flex中处理遮挡(重叠)显示对象上的鼠标事件?,actionscript-3,overlapping,occlusion,Actionscript 3,Overlapping,Occlusion,我的问题与之前提出的一些关于重叠精灵/电影的问题有点相似。但我的要求与他们略有不同 我想处理舞台上所有精灵的鼠标事件,包括隐藏在后面(或重叠或遮挡)的精灵,主要条件是我想处理遮挡的精灵(隐藏在其他精灵后面)。例如,假设舞台上有sprite1和sprite2,我想在每次单击sprite时开始拖动,并在再次单击后停止拖动 这可以很容易做到,但问题和我的主要要求是,如果我拖动精灵1并将其完全放置在精灵2的顶部,那么精灵2将隐藏在精灵1的后面。如果不先移动精灵1,我将无法拖动精灵2。如果你在facebo

我的问题与之前提出的一些关于重叠精灵/电影的问题有点相似。但我的要求与他们略有不同

我想处理舞台上所有精灵的鼠标事件,包括隐藏在后面(或重叠或遮挡)的精灵,主要条件是我想处理遮挡的精灵(隐藏在其他精灵后面)。例如,假设舞台上有sprite1和sprite2,我想在每次单击sprite时开始拖动,并在再次单击后停止拖动

这可以很容易做到,但问题和我的主要要求是,如果我拖动精灵1并将其完全放置在精灵2的顶部,那么精灵2将隐藏在精灵1的后面。如果不先移动精灵1,我将无法拖动精灵2。如果你在facebook上玩过zynga的empires和allais游戏,它是分开处理的,这就是它在该游戏中的工作方式,鼠标事件在重叠的精灵后面的精灵上触发,如果有两个精灵重叠一个精灵,则无论只有一个精灵重叠还是两个或三个精灵重叠,最后一个精灵而不是前面的精灵上都会触发鼠标事件,这种情况发生在不规则形状的精灵上(不仅仅是矩形)

如果有人能告诉我zynga是如何实现这一目标的,或者能帮我找到实现这一目标的方法,那将是极大的帮助


谢谢

一种可能是游戏没有听到来自每个单独精灵的点击事件

在编写游戏时,通常要实现一个网格系统。如果是这种情况,程序员会记录所有精灵在网格上的位置。然后,程序员可以监听整个网格渲染器上的单击,并通过参照网格记录上的鼠标位置计算出所选对象