我正在开发一个带有HTML5画布的网页游戏应用程序,该画布必须对“点击”事件作出反应(一般意义上)。
在移动平台(或支持触控)上,这意味着在桌面/笔记本电脑平台(使用鼠标或平板电脑)上对onTouchDown做出反应,这意味着对onMouseDown做出反应。
问题是,如果我处理这两个事件,那么有时相同的“点击”将导致两个事件被触发,所以我得到双重信号。
处理这个问题的最佳方法是什么?
目前,在我收到的第一个触摸事件时,我关闭了鼠标事件,但如果平台同时支持触摸和放大,那么这可能会有点沉重。鼠标点击(f.i.带有键盘/打击垫/鼠标的Android平板电脑)
测量触摸和触摸之间的延迟触摸不能很好地点击以忽略点击,因为在某些情况下用户可能会以高频率触摸/点击,因此太长的延迟会导致双击/点击次数减少,并且延迟时间过短偶尔双重信号滑落。
我看过用户代理检测,但这看起来非常脆弱(许多用户代理在那里),并没有解决平台同时具有触摸功能的情况。鼠标/垫。
答案 0 :(得分:1)
也许是你的建议的组合:
测量触摸和触摸之间的延迟触摸不能很好地点击以忽略点击,因为在某些情况下用户可能会以高频率触摸/点击,因此太长的延迟会导致双击/点击次数减少,并且延迟时间过短偶尔双重信号滑落
检测水龙头的x,y坐标会减少误报。因此,如果按顺序发生的两个事件(点击和点击)都获得相同的坐标,则它们将被处理为相同的。
或者如果他们想要使用鼠标或触摸他的设备(如果两者都支持),也可以让用户切换(通过某种选项屏幕)。显示警告消息,例如说you're on a touch device so we enabled touch events, if you're using a mouse please see options
或类似的内容。
大多数用户会对自动选择感到满意,每个不开心的人都可以改变它。