0

「クリック」イベント(一般的な意味で)に反応する必要があるHTML5キャンバスを使用して、Webゲームアプリケーションを開発しています。

モバイル プラットフォーム (またはタッチ対応) では onTouchDown に反応することを意味し、デスクトップ/ラップトップ プラットフォーム (マウスまたはパッドを使用) では onMouseDown に反応することを意味します。

問題は、両方のイベントを処理すると、同じ「クリック」によって両方のイベントが発生することがあるため、二重のシグナリングが発生することです。

それを処理する最良の方法は何ですか?

現在、私が受け取った最初のタッチイベントで、マウスイベントをオフにしますが、プラットフォームがタッチとマウスの両方のクリックをサポートしている場合、それは少し面倒かもしれません (キーボード/パッド/マウスが接続された Android タブレットの場合)。

タッチとクリックの間の遅延を測定して、タッチ後のクリックを無視することはあまりうまくいきません。ユーザーが高い頻度でタッチ/クリックする状況があるため、遅延が長すぎるとダブルタップ/クリックのドロップが発生するためです。遅延が短すぎると、時折発生する二重シグナリングがすり抜けてしまいます。

私はユーザーエージェントの検出を見てきましたが、それは非常に壊れやすいようで (多くのユーザーエージェントがあります)、プラットフォームにタッチとマウス/パッドの両方がある場合は解決しません。

4

1 に答える 1

1

多分あなたの提案の組み合わせ:

タッチとクリックの間の遅延を測定して、タッチ後のクリックを無視することはあまりうまくいきません。ユーザーが高い頻度でタッチ/クリックする状況があるため、遅延が長すぎるとダブルタップ/クリックのドロップが発生するためです。遅延が短すぎると、時折発生する二重シグナリングがすり抜けます。

また、タップの x、y 座標を検出すると、誤検知が減少します。したがって、連続して発生する両方のイベント (タップ & クリック) が同じ座標を取得した場合、それらは同じものとして処理されます。

または、両方がサポートされている場合、ユーザーがデバイスでマウスまたはタッチを使用したい場合は、(ある種のオプション画面を介して) ユーザーに切り替えさせることができます。などの警告メッセージを表示しますyou're on a touch device so we enabled touch events, if you're using a mouse please see options

ほとんどのユーザーは自動選択に満足し、満足していない人は誰でもそれを変更できます。

于 2012-01-10T07:52:57.830 に答える