gpt4 book ai didi

actionscript-3 - as3 mouseEnabled 对我来说仍然是个问题

转载 作者:行者123 更新时间:2023-12-04 02:38:19 25 4
gpt4 key购买 nike

几年过去了,关于 mouseEnabled 的一些东西我还是没弄明白。我有一个 Sprite (例如这里的“天空”,它包含许多对象,其中一个是云,我不想接收鼠标事件。我将此天空覆盖在其他一些显示对象上。我希望云是可见,但不能阻止鼠标事件。如果你看到一棵树穿过云层,你应该能够点击这棵树。

在天空类中:

mouseEnabled = false;
cloud.mouseEnabled = false;
cloud.mouseChildren = false;

即使使用这种配置,当云在树上时我也无法点击树,因为云挡住了它。为什么???

最佳答案

即使 Sky 将 mouseEnabled/mouseChildren 设置为 false...它仍然是一个对象,它仍然占用空间,因此仍然充当任何没有将 mouseEnabled/mouseChildren 设置为 false 的 PARENT 容器的命中区域。

因此,我怀疑您的 Sky 对象与您的 Tree 对象不在同一个父容器中。您的 Sky 对象可能有自己的父容器对象,它是拦截事件的罪魁祸首。

详细说明:任何包含 ANYTHING 的对象都将有一个命中区域并会拦截鼠标点击,即使它包含的所有单个内容(形状、子对象等)可能将 mouseEnabled/mouseChildren 设置为 false。

因此,即使您的 Sky 对象将 mouseEnabled 设置为 false,您的 Sky(及其子项)仍会占用空间,因此仍然为 Sky 的父容器提供一个命中区域来拦截鼠标事件。

因此,您的解决方案是确保 Sky 的所有父容器都将其 mouseEnabled 属性设置为 false,至少直到(但不包括)Tree 和 Sky 对象的第一个共同祖先容器。

此外,通过设置 mouseEnabled=false 并保留 mouseChildren=true,您可以拥有一个容器,其中仅选择具有 mouseEnabled=true 的子项接收单击事件:)

关于actionscript-3 - as3 mouseEnabled 对我来说仍然是个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2248381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com