0

「JavaScriptを使用したFoundationHTML5Animation」という本の例を使用して、タッチ対応ゲームの作成に取り組んでいます。この本の例の1つは、機能するが完全ではない基本的なタッチ機能を示しています。例http://jsfiddleへのリンクを次に示します。 .net / yrXCN / 3 /

以下の関数によると、ボール内のキャンバスに触れると、「in ball:touchstart」というメッセージがログに記録されますが、まだ機能していません。ボールに移動するとボールを認識しますが、何らかの理由でファーストタッチを認識しません。

マウスリスナーを使用するようにコードを変更すると、意図したとおりに機能します。

canvas.addEventListener('touchstart', function (event) {
    event.preventDefault();
    if (utils.containsPoint(ball.getBounds(), touch.x, touch.y)) {
      log.value = "in ball: touchstart";
    } else {
      log.value = "canvas: touchstart";
    }
  }, false);
4

1 に答える 1

0
 element.addEventListener('touchstart', function (event) {
    touch.isPressed = true;
    touch.event = event;
}, false);

「タッチスタート」がボールに発射され、touch.x定義touch.yされていないため、ボールのタッチを認識できない場合。あなたは追跡touch.xtouch.y、touchmoveイベントで、移動中にタッチがボールにあることを認識する理由です。

編集:これは、88-91行目のタッチスタートイベントを設定touch.xして内部で解決できます。touch.y

于 2013-03-26T16:29:18.050 に答える