我正在创建一个简单的绘图应用程序,每次用户单击和拖动时,它都会将新的 Shape 对象添加到 MovieClip“画布”。问题是,我注意到即使将 MouseEvent 侦听器设置为 MovieClip,子 Shape 对象也会作为目标返回。这也会破坏 localX 和 localY,导致绘图光标随着坐标从整个 MovieClip 的本地更改为鼠标当前所在的 Shape 的本地而四处跳动。
有什么方法可以从 MouseEvent 中检索最父母的目标吗?
我正在创建一个简单的绘图应用程序,每次用户单击和拖动时,它都会将新的 Shape 对象添加到 MovieClip“画布”。问题是,我注意到即使将 MouseEvent 侦听器设置为 MovieClip,子 Shape 对象也会作为目标返回。这也会破坏 localX 和 localY,导致绘图光标随着坐标从整个 MovieClip 的本地更改为鼠标当前所在的 Shape 的本地而四处跳动。
有什么方法可以从 MouseEvent 中检索最父母的目标吗?
您可能只是想设置DisplayObjectContainer::mouseChildren
为false
...除此之外,您可以将currentTarget
, 这应该是您的MovieClip
并使用它的DisplayObject::mouseX
and DisplayObject::mouseY
...或者您可以使用MouseEvent::stageX
and theMouseEvent::stageY
然后DisplayObject::globalToLocal
将其转换为您MovieClip
的坐标空间...
小旁注:为什么MovieClip
而不是Sprite
?
编辑:实际的一点,为什么我不喜欢使用MovieClip
它,它是动态的,所以在拼写错误时不会出现编译器错误......
问候
back2dos