【问题标题】:How to handle mouse events on occluded (overlapped) display objects in flash/flex?如何在 flash/flex 中处理遮挡(重叠)显示对象上的鼠标事件?
【发布时间】:2011-09-03 15:40:02
【问题描述】:

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

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

这可以很容易地完成,但问题和我的主要要求是,如果我将 sprite1 拖放到 sprite2 的顶部,那么 sprite2 将隐藏在 sprite1 后面,我将无法拖动 sprite2 而无需移动首先是 sprite1。如果您在 facebook 上玩过 zynga 的 Empires and allais 游戏,它会单独处理,这就是它在该游戏中的工作方式,鼠标事件在重叠精灵后面的精灵上触发,如果您有两个精灵重叠一个精灵而不是鼠标事件在最后一个而不是前面的精灵上触发,无论是否只有一个精灵重叠或两个或三个重叠,这发生在不规则形状的精灵(不仅仅是矩形)上

如果有人可以告诉我 zynga 是如何实现这一点的,或者帮助我了解如何实现它,那将是很大的帮助

谢谢

【问题讨论】:

    标签: actionscript-3 overlapping occlusion


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-23
      • 2013-03-15
      • 2017-10-30
      • 1970-01-01
      • 2013-04-20
      • 1970-01-01
      • 1970-01-01
      • 2015-04-02
      相关资源
      最近更新 更多