10

私は Phaser を初めて使用し、現在 Phaser v.2.0.7 を使用しています。私がやりたいことは、スプライトがタッチ イベントを処理するようにすることです。

onTapスプライト オブジェクトにアタッチするにはどうすればよいですか?

でタッチイベントが可能であることは知っていますが、の後にポップアップ/モーダル(アラート)が発生した場合、イベントリスナーを再度機能させるには、その後2回クリックする必要があるため、いずれかsprite_obj.events.onInputDownを使用しました。(この問題に対する私の個人的な回避策は、inInputUp を使用することです。)onInputUponInputDown

私が試したもう1つのことはonTap、キャンバスオブジェクトに追加することですが、canvas.input.onTap.addこれは私の目標を達成するのに適していないと思います. はい、タッチ イベントを処理できるようになりましたが、問題は、タッチ イベントをキャンバス全体ではなく、キャンバス上のスプライト イメージのみに制限したいことです。

誰かが私を助けることができますか?ありがとう。

4

2 に答える 2

24

まず、入力用にスプライトを有効にする必要があります。

sprite.inputEnabled = true;

次に、Sprite が入力に関与しているときに送出するイベントをリッスンできます。

sprite.events.onInputDown.add(onDown, this);

...

function onDown(sprite, pointer) {
 // do something wonderful here
}

コールバックには、入力イベントを発生させたスプライトとポインタの 2 つのパラメータが送信されます (マルチ入力システムのように、これは頻繁に変化する可能性があります)。

Pointer には、配置された時間、移動履歴など、アクセスできる多くのプロパティがあります。詳細については、Pointer のドキュメントを参照してください。

スプライトには多くのイベントがありますが、これらは入力関連のものです (これは Phaser ソース コードから直接持ち上げられます)。

/**
* @property {Phaser.Signal} onInputOver - This signal is dispatched if the parent is inputEnabled and receives an over event from a Pointer.
* @default null
*/
this.onInputOver = null;

/**
* @property {Phaser.Signal} onInputOut - This signal is dispatched if the parent is inputEnabled and receives an out event from a Pointer.
* @default null
*/
this.onInputOut = null;

/**
* @property {Phaser.Signal} onInputDown - This signal is dispatched if the parent is inputEnabled and receives a down event from a Pointer.
* @default null
*/
this.onInputDown = null;

/**
* @property {Phaser.Signal} onInputUp - This signal is dispatched if the parent is inputEnabled and receives an up event from a Pointer.
* @default null
*/
this.onInputUp = null;

/**
* @property {Phaser.Signal} onDragStart - This signal is dispatched if the parent is inputEnabled and receives a drag start event from a Pointer.
* @default null
*/
this.onDragStart = null;

/**
* @property {Phaser.Signal} onDragStop - This signal is dispatched if the parent is inputEnabled and receives a drag stop event from a Pointer.
* @default null
*/
this.onDragStop = null;
于 2014-09-01T19:55:01.057 に答える
0

これを試しましたか?this.input.onDown.add(obj.method,obj);

于 2014-09-01T14:56:22.437 に答える