2016-11-17 49 views
1

我试图在HTML5画布上构建一键式游戏。这是本教程的帮助下做了一个正在运行的游戏:Android浏览器长时间持续禁用/鼠标上升1秒后

http://blog.sklambert.com/html5-game-tutorial-game-ui-canvas-vs-dom/

我改变了现有的控制从空格键鼠标点击。除了Android设备移动浏览器之外,它可以在所有平台上完美运行。

在Android设备中,触摸会使用户跳跃。如果触摸持续时间很长,即使释放触摸,用户也会保持跳动。在iPhone或iPad或台式机中不会发生此问题。

我可以制作一个JavaScript函数,其中一个鼠标停下来一定秒数被切断?例如:

if(mousedown for 1sec) 
    mouseup; 

让我知道你是否可以想到另一种方法。

回答

0

对于支持触摸的设备,您可以使用触摸事件而不是鼠标。参见:https://developer.mozilla.org/en-US/docs/Web/API/Touch_events/Using_Touch_Events

function is_touch_device() { 
    /* Function code taken from http://stackoverflow.com/a/4819886/3946520 */ 
    return 'ontouchstart' in window  // works on most browsers 
     || navigator.maxTouchPoints;  // works on IE10/11 and Surface 
}; 

if(is_touch_device()) { 
    canvas.addEventListener('touchstart', handleTouchStart, false); 
    canvas.addEventListener('touchend', handleTouchEnd, false); 
} 
else { 
    // Bind Mouse Events 
} 

function handleTouchStart(e) { 
    // This code runs when user touches the canvas i.e. on touch start 
} 

function handleTouchEnd(e) { 
    // This code runs when user removes finger from canvas i.e. on touch end 
} 

还要注意,可以有场景,用户将两个或两个以上的手指在画布上。他们每个人都会触发'touchstart'事件。所以你必须处理。 你可以参考http://www.javascriptkit.com/javatutors/touchevents.shtml了解关于触摸事件的优秀教程。