我有一个用画布制作的游戏,用于侦听w,a,d和箭头键。 然而,当我离开画布并单击画布下方的“单击此处订阅”按钮并尝试键入w,a或d时,他们将不会键入。
我使用JQuery作为按钮和HTML5 Canvas用于游戏。
是什么造成了这个以及任何想法如何阻止它? 有没有办法可以在单击按钮时停止监听器,然后再次启动它 JQuery屏幕关闭了吗?
答案 0 :(得分:0)
听起来你正在整个窗口上听重要事件。
您可以通过设置其标签索引来允许画布本身接收关键事件。
然后在画布上而不是在窗口上侦听关键事件。
然后当用户将焦点更改为您的订阅表单时,画布键处理程序将不再接收键事件。
// get a reference to the canvas
var canvas=document.getElementById('canvas');
// set canvas to be a tab stop (necessary to get keydown events)
canvas.setAttribute('tabindex','0');
// have handleKeydown handle keydown events on the canvas
canvas.addEventListener('keydown',handleKeydown,false);
// set focus to the canvas so keystrokes are immediately handled
canvas.focus();