У меня есть игра, которую я сделал в холсте, который слушает клавиши w, a, d и стрелки. Однако, когда я ухожу с холста и нажимаю кнопку "Нажмите здесь, чтобы подписаться" под холстом и попробуйте ввести w, a или d, тогда они не будут печататься.
Я использую JQuery для кнопки и HTML5 Canvas для игры.
Что вызывает это и любая идея, как остановить его? Есть ли способ остановить слушателя при нажатии кнопки и запустить его снова, когда экран JQuery закрыт?
Вот он: http://www.slimedrop.com
Похоже, что вы слушаете ключевые события во всем окне.
Вы можете разрешить самому холсту получать ключевые события, указав индекс табуляции.
Затем слушайте ключевые события на вашем холсте, а не в окне.
Затем обработчик ключей холстов больше не будет получать ключевые события, когда пользователь изменяет фокус на вашу форму подписки.
// 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();