gpt4 book ai didi

java - 如何向 playn 中的 GroupLayer 添加监听器?

转载 作者:行者123 更新时间:2023-12-01 17:31:17 25 4
gpt4 key购买 nike

我已将 Pointer.Listener 和 Mouse.Listener 与 ImageLayer 一起使用,并且它有效。但是当我使用 Pointer.Listener 到 GroupLayer 时,它不会监听单击或触摸。我怎样才能做到这一点?

我正在使用以下代码。

myGroupLayer.addListener(new Pointer.Listener() {
@Override
public void onPointerEnd(Event event) {
System.out.println("click registered");
myMethodToRun();
}
@Override
public void onPointerDrag(Event event) { }
@Override
public void onPointerStart(Event event) { }
});

最佳答案

GroupLayer 本身永远不会被鼠标单击“击中”。 GroupLayer 的子级之一可能会被击中,但这不会触发在组层上注册的监听器,只会触发子级本身的监听器。

如果您有一个包含多个子项的 GroupLayer,并且您希望在单击其中任何子项时将事件分派(dispatch)到 GroupLayer 的监听器,那么您必须在 GroupLayer 上使用自定义 HitTest 器:

myGroupLayer.setHitTester(new Layer.HitTester() {
public Layer hitTest(Layer l, Point p) {
Layer hitLayer = myGroupLayer.hitTestDefault(p);
return (hitLayer != null) ? myGroupLayer : null;
}
});

这将导致您的 GroupLayer HitTest 其所有子级,如果任何子级被命中,它将返回自身作为命中层。然后,在图层组上注册的监听器将运行,就像单击图层组本身一样。

关于java - 如何向 playn 中的 GroupLayer 添加监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10632787/

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