「クリック」イベント(一般的な意味で)に反応する必要があるHTML5キャンバスを使用して、Webゲームアプリケーションを開発しています。
モバイル プラットフォーム (またはタッチ対応) では onTouchDown に反応することを意味し、デスクトップ/ラップトップ プラットフォーム (マウスまたはパッドを使用) では onMouseDown に反応することを意味します。
問題は、両方のイベントを処理すると、同じ「クリック」によって両方のイベントが発生することがあるため、二重のシグナリングが発生することです。
それを処理する最良の方法は何ですか?
現在、私が受け取った最初のタッチイベントで、マウスイベントをオフにしますが、プラットフォームがタッチとマウスの両方のクリックをサポートしている場合、それは少し面倒かもしれません (キーボード/パッド/マウスが接続された Android タブレットの場合)。
タッチとクリックの間の遅延を測定して、タッチ後のクリックを無視することはあまりうまくいきません。ユーザーが高い頻度でタッチ/クリックする状況があるため、遅延が長すぎるとダブルタップ/クリックのドロップが発生するためです。遅延が短すぎると、時折発生する二重シグナリングがすり抜けてしまいます。
私はユーザーエージェントの検出を見てきましたが、それは非常に壊れやすいようで (多くのユーザーエージェントがあります)、プラットフォームにタッチとマウス/パッドの両方がある場合は解決しません。