2012-01-10 2 views
0

私はHTML5キャンバスを使ってWebゲームアプリケーションを開発しています。これは一般的な意味で「クリック」イベントに反応する必要があります。モバイルブラウザのonTouchDownとデスクトップ/ノートパソコンのonMouseDownを処理しますか?

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

私は両方のイベントを処理すると、時には同じ "クリック"が発生して両方のイベントが発生するため、ダブルシグナリングが発生します。

これを処理するにはどうすればよいでしょうか?

現在のところ、最初のタッチイベントが発生するとマウスイベントはオフになりますが、プラットフォームがタッチの両方をサポートしていれば少し重いかもしれません。&マウスクリック(キーボード/パッド/マウスが接続されたAndroidタブレット)

タッチ間の遅延を測定&タッチした後にクリックを無視するとクリックが無視されます。ユーザーが頻繁にタッチしたりクリックしたりすることがあるため、遅延が長すぎるとダブルタップがドロップされます/クリックしすぎると、遅延が短すぎると、時折ダブルシグナリングがスリップすることがあります。

私はユーザエージェントの検出を見てきましたが、かなり壊れやすい(多くのユーザエージェントがそこにいる)ようですが、プラットフォームにtouch &マウス/パッドの両方がある場合は解決しません。たぶん、あなたの提案の組み合わせ

答えて

1

タッチがあまりにもうまく動作しません後、ユーザーが触れることの事情があるとして、クリックを無視するタッチ間&クリックして遅延を測定/でクリックしてください高周波なので、あまりにも長い遅延は、ダブルタップ/クリックを落としにつながる、とあまりにも短い遅延が時折ダブルシグナリング

をすり抜けるとXを検出することによりでき、タップのy座標は、偽陽性を減少させます。したがって、連続して起こっている両方のイベント(タップ&クリック)が同じ座標を持つ場合、同じ座標として扱われます。

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

ほとんどのユーザーは自動選択に満足していて、誰もが不満を持って変更することができます。

関連する問題