2012-05-13 11 views
3

私はポインタイベントをキャッチするために、このButtonクラスを作った:私はインスタンス化のいずれかのボタンをタッチするとプレイとマルチタッチ?

public class Button implements Pointer.Listener { 

    public void initLayer(Image defaultImage) { 
    layer = parent.createImageLayer(this.defaultImage); 
    layer.addListener(this); 
    } 

... 

は、私がonPointerStart & onPointerEndイベントを取得。しかし、私のボタンの1つがすでに触れられていて、別のボタンに触れ始めると、2番目のボタンのonPointerStartイベントは得られません。

playnでこれらのマルチタッチイベントを取得する方法はありますか?

+0

どのプラットフォームですか? AndroidまたはiOS? – samskivert

+0

@samskivert - > Android。 – dawi

答えて

6

Pointerサービスは、単純なタッチ操作またはマウス操作のいずれかを抽象化することを目的としています。したがって、マルチタッチの相互作用をサポートしていません。 Pointerサービスを使用して最初のタッチ以外のタッチに関する通知を受け取ることはありません。

複数のタッチを処理する場合は、Touchサービスを使用する必要があります。現在、レイヤーに直接Touchリスナーを登録する方法はありません。したがって、グローバルリスナーを登録してヒットテストを行い、そのタッチなどで最初にヒットしたレイヤーにタッチ移動をマッピングする必要があります。

+0

ちなみに、レイヤーにタッチリスナーを登録することができるようになったので、少なくとも自分でその部分を行う必要はありません。これらのドキュメントでは、Pointerイベントの操作方法について説明していますが、Touchイベントでもこれを行うことができます:http://playn.io/cookbook/scene-graph.html#reacting-to-a-click-on-a-layer – samskivert