1

私はhtml 5ゲームを構築していますが、iPadでテストを開始したところです(iOS 6、iOS 7ではないと思います)。ゲームをプレイしているときは、ラバー バンディングを避けたいと思っていますが、スワイプ イベントにも反応したいと思っています。これが私がこれを行った方法です:

$("#game").on("touchmove", false) #prevent rubber banding on iOS
hammer = $('#game').hammer({swipe_velocity: .05})
hammer.on "swipeup", (event) -> root.core.handleKeyDown(root.constants.UP); stopProp(event)
hammer.on "swipedown", (event) -> root.core.handleKeyDown(root.constants.DOWN); stopProp(event)
hammer.on "swipeleft", (event) -> root.core.handleKeyDown(root.constants.LEFT); stopProp(event)
hammer.on "swiperight", (event) -> root.core.handleKeyDown(root.constants.RIGHT); stopProp(event)

問題は、人々が #game をクリックして一時停止できるようにしたいということです。私のコードの最初の行がこれを妨げているようで、その理由を理解したいと思います。私のゲーム イベント リスナーは、次のような「クリック」イベントをリッスンしています。

$("#game").on "click", (event) ->

奇妙なことに、「一生懸命」努力すれば、「時々」うまくいくということです。これがなぜなのかわかりません。しかし、何度も押すと、最終的には機能します。

もう 1 つの奇妙な点は、最初の行をコメントアウトすると、クリックするとゲームが一時停止しますが、常に 0.5 秒の遅延があるように見えることです。スワイプは非常に反応が良いので、これはパフォーマンス上の理由ではないと思います。

ラバーバンディングを回避し、クリックイベントを処理できるようにする方法を誰か説明できますか? また、私が犯している間違いを説明してください。「クリック」と「タップ」、「マウスダウン」と「タッチ」がどのように連携するのか理解できません。

4

1 に答える 1