【问题标题】:CreateJS getObjectsUnderPoint when alpha = 0当 alpha = 0 时 CreateJS getObjectsUnderPoint
【发布时间】:2013-08-16 11:26:56
【问题描述】:

我需要在容器中的点下获取所有位图。位图 alpha 设置为 0,这似乎不适用于此方法。

还有其他选择吗?我不能只为对象添加一个事件侦听器,因为在这种情况下这还不够。

谢谢

【问题讨论】:

    标签: javascript alpha easeljs createjs


    【解决方案1】:

    1) 如果您只想获取某个点下的对象,则必须遍历容器的所有子项并调用 hitTest(x,y) (http://www.createjs.com/Docs/EaselJS/classes/DisplayObject.html#method_hitTest) 这将忽略 alpha 值。 (记得用对象本地坐标空间中的坐标调用方法)

    2) 如果您想使用 EventListeners 和 Alpha-0 对象,您可以将另一个 DisplayObject 定义为 hitArea (http://www.createjs.com/Docs/EaselJS/classes/DisplayObject.html#property_hitArea) - 在这种情况下,只有 hitArea 对象的形状、alpha 等。被使用了。

    【讨论】:

    • 感谢您的提示,我正在使用 hitTest 但它似乎没有按预期工作。我有一个 Square 容器,里面有一个 50x50 的正方形,x=50 和 y=50。当我单击它并进行命中测试时,它返回 false,但是当我单击 x=0 y=0 时,命中测试返回 true
    • 命中测试正在子容器上运行
    • 正如我所提到的,您必须将坐标转换为每个孩子的局部坐标空间,在您的情况下,这取决于听众来自哪里:localCoords = listenerObject.localToLocal(x,y,targetChild); - 应该这样做跨度>
    • 我使用了hit test,它在实心块上工作得很好,但是当我使用三角形时,只有不透明的部分被hitTest注册,而不是完全透明的部分。
    • 是的,这是正确的,但它忽略了显示对象的 alpha 值
    猜你喜欢
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    • 2014-10-03
    • 1970-01-01
    • 2014-12-05
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多