2015-09-03 75 views
0

我正在爲展覽建立一個Web應用程序,我們正在使用觸摸屏作爲交互輸入。如果用戶決定垃圾郵件(如瘋狂),event.touches會在一段時間後認爲一觸式(一個手指)包含多個觸摸事件。即使我刷新網頁(f5/shift-f5會得到相同的結果),它仍然會告訴我,單指觸摸是幾個不同位置的觸摸。完全重置它的唯一方法似乎是瀏覽器的完全重啓。event.touches檢測觸摸屏垃圾郵件後的多個觸摸事件

該Web應用程序是爲Chrome構建的。

有沒有人知道是什麼原因造成的,以及如何防止它?我曾嘗試在指針事件中放置100%的屏幕大小疊加層:如果觸摸點超過5(以防止更多觸摸),則不會顯示任何內容,但即使如此,Chrome也會註冊觸摸並使用香蕉。

在此先感謝!

編輯:該錯誤未出現在Chrome的Metro/Windows 8模式中。但是,Metro Chrome不尊重--kiosk,這使得它無法在展覽中使用。

+0

只是在黑暗中拍攝真的,但你有沒有嘗試過運行d3.timer.flush()?這聽起來可能是擁有觸摸行爲的功能正在重新初始化,但之前的實例不會被GCed,因爲有來自這些實例設置的定時器的回調。例如,你可以獲得這個佈局。 –

+0

謝謝!我會盡快嘗試。但是,不應該在刷新時重置所有d3事件/定時器/調用/ etc嗎? – MonsterBebis

+0

這是可取的,但計時器隊列是超輕,因爲它是熱碼,但有時它可能有點太輕。有一個[未解決的問題](https://github.com/mbostock/d3/issues/2468)將在未來版本中修復。更詳細的解釋[這裏](https://github.com/mbostock/d3/issues/1790) –

回答