【发布时间】:2012-01-10 07:49:12
【问题描述】:
我正在开发一个带有 HTML5 画布的网络游戏应用程序,该画布必须对“点击”事件(一般意义上的)做出反应。
在移动平台(或支持触控的平台)上,这意味着对 onTouchDown 做出反应,在台式机/笔记本电脑平台上(使用鼠标或垫),这意味着对 onMouseDown 做出反应。
问题是,如果我同时处理这两个事件,那么有时同一个“点击”会导致两个事件都被触发,所以我会收到双重信号。
最好的处理方法是什么?
目前,在我收到第一个触摸事件时,我会关闭鼠标事件,但如果平台同时支持触摸和鼠标点击(例如带有附加键盘/键盘/鼠标的 Android 平板电脑),这可能有点笨拙
测量触摸和点击之间的延迟以在触摸后忽略点击效果不太好,因为在某些情况下用户可能会高频触摸/点击,因此太长的延迟会导致双击丢失/点击,太短的延迟会让偶尔的双重信号通过。
我查看了用户代理检测,但这似乎很脆弱(那里有许多用户代理),并且不能解决平台同时具有触摸和鼠标/板的情况。
【问题讨论】:
标签: javascript touch-event onmousedown