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