【发布时间】:2023-12-28 13:04:01
【问题描述】:
我动态添加了一个影片剪辑。在某些时候,我绘制了动画剪辑并将位图放置在 MC 内的 MC 中,并为其添加了一个添加过滤器。后来我给这样的父动画剪辑提供了拖动功能。我希望鼠标检测除绘制的位图之外的所有内容。我已经将包含位图的影片剪辑设置为 mouseEnabled false & mouseChildren false。但是位图仍然被鼠标检测到。当我将父级设置为 mouseEnabled = false 时,父级不再拖动,因此不起作用。当我将父级设置为 mouseChildren = false 时,没有任何变化,仍然可以感知位图。如何让绘制的位图可见,但让拖动功能忽略 MC 封装的位图?
【问题讨论】:
-
只是一个想法。将位图(或其具有 mouseChildren = false 的容器)的 name 设置为特定的内容。像“NoMouse”。然后在鼠标事件处理程序中忽略事件 if (e.target.name == "NoMouse"),其中 e 是处理程序参数。
-
您是说希望子位图保持锁定在同一屏幕位置,即使其父 MC 正在被鼠标移动?
-
@VC.One 重点是实体对象可以禁用鼠标交互,但当鼠标与对象交互时,其父对象仍会调度鼠标事件。
-
@VC.One 不,我希望整个包都是可拖动的,包括位图。我只是不希望位图对鼠标敏感,因为它的 90% 是一个巨大的透明框,远远超出了眼睛所感知的可交互对象。
-
那么,你需要使用这个方法:help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/… 请注意Stage坐标空间(就像hitTestPoint)而不是局部坐标。因此,您将获得位于 (mouseX, mouseY) 位置下的子项列表,如果列表中有位图及其容器以外的对象,则允许事件发生,类似的事情。
标签: actionscript-3 air adobe-animate