Roc*_*ins 0 java gwt listener playn
我在ImageLayer中使用了Pointer.Listener和Mouse.Listener,但它确实有效.但是当我将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) { }
});
Run Code Online (Sandbox Code Playgroud)
GroupLayer永远不会被鼠标点击"击中".可能会击中GroupLayer的一个子节点,但这不会触发在组图层上注册的侦听器,仅触发子节点本身.
如果您有一个包含多个子节点的GroupLayer,并且您希望在单击任何这些子节点时将事件分派给GroupLayer的侦听器,那么您必须在GroupLayer上使用自定义命中测试器:
myGroupLayer.setHitTester(new Layer.HitTester() {
public Layer hitTest(Layer l, Point p) {
Layer hitLayer = myGroupLayer.hitTestDefault(p);
return (hitLayer != null) ? myGroupLayer : null;
}
});
Run Code Online (Sandbox Code Playgroud)
这将导致GroupLayer对其所有子节点进行测试,如果有任何子节点被击中,它将自己返回到命中图层.然后,将在组图层上注册的侦听器运行,就像单击组图层一样.
| 归档时间: |
|
| 查看次数: |
422 次 |
| 最近记录: |