听众甚至在画布上消费键?

时间:2013-09-21 14:58:18

标签: jquery html5 canvas keylistener

我有一个用画布制作的游戏,用于侦听w,a,d和箭头键。 然而,当我离开画布并单击画布下方的“单击此处订阅”按钮并尝试键入w,a或d时,他们将不会键入。

我使用JQuery作为按钮和HTML5 Canvas用于游戏。

是什么造成了这个以及任何想法如何阻止它? 有没有办法可以在单击按钮时停止监听器,然后再次启动它 JQuery屏幕关闭了吗?

这是:http://www.slimedrop.com

1 个答案:

答案 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();