2012-01-10 50 views
0

我正在開發一個帶有HTML5畫布的網頁遊戲應用程序,它必須對「點擊」事件(通常含義)做出反應。在臺式機/筆記本電腦上處理移動瀏覽器上的onTouchDown和onMouseDown?

在移動平臺(或具有觸摸功能)上,這意味着對onTouchDown,桌面/筆記本電腦平臺(使用鼠標或鍵盤)作出反應,這意味着要對onMouseDown做出反應。

問題是,如果我處理了兩個事件,那麼有時候相同的「點擊」會導致兩個事件被解僱,所以我得到了雙重信號。

什麼是最好的處理方式?

目前,在我收到第一個觸摸事件時,我關閉了鼠標事件,但如果平臺同時支持觸摸&鼠標點擊(連接鍵盤/鼠標/鍵盤的Android平板電腦)

測量觸摸之間的延遲&點擊以忽略點擊後,由於有些情況下用戶可能會觸摸/點擊高頻率,所以忽略點擊,所以過長的延遲會導致雙擊下降/ clicks,而且太短的延遲可以讓偶爾的雙重信號通過。

我已經看過用戶代理檢測,但似乎很脆弱(許多用戶代理那裏),並沒有解決平臺都觸摸&鼠標/鍵盤的情況。

回答

1

也許你的建議的組合:

測量觸摸之間的延遲&點擊忽略點擊後觸摸不工作也很好,因爲有些情況下,用戶可以觸摸的情況下/點擊在工作頻率高,所以太長的延遲導致下降雙水龍頭/點擊和過短的延遲可通過偶爾的雙信號通過

滑倒和檢測的X,水龍頭的y座標將降低誤報。因此,如果兩個事件(點擊&點擊)發生順序得到相同的座標,它們將按照相同的方式處理。

或者,也許讓用戶切換(通過某種選項屏幕),如果他想要使用鼠標或觸摸他的設備,如果兩者都支持。顯示一個警告信息,例如說you're on a touch device so we enabled touch events, if you're using a mouse please see options或類似的東西。

大多數用戶會對自動選擇感到滿意,每個人都不滿意可以改變它。

相關問題