Javascript keyup не работает должным образом, он выполняется в тех случаях, когда я не убрал палец с кнопки - PullRequest
3 голосов
/ 02 мая 2010

Я пытаюсь создать простую игру на javascript и застрял на том, как обращаться с ключами.

Маленький пример:

function keyUpEvent(event) {
    alert(event.keyCode);
}
window.addEventListener("keyup", keyUpEvent, false);

Я использую Ubuntu 9.10 и тестирую его в Firefox 3.5 и Chromium.

Если я мгновенно нажимаю и отпускаю кнопку, я получаю предупреждение, что и следовало ожидать, но когда я нажимаю и удерживаю кнопку, я получаю небольшую паузу, а затем серию окон предупреждений, ожидаемый результат - получите окно с предупреждением, когда я уберу палец с кнопки.

Я полагаю, что это как-то связано с тем фактом, что когда я нажимаю и удерживаю кнопку, например, в текстовой области, я получаю один символ, небольшую паузу, а затем серию символов:

Я считаю, что возможно обойти это или сделать это более правильно или что-то еще, так как эта игра, например: http://bohuco.net/testing/gamequery/pong.html швы, чтобы не быть затронутой этим. Но я замечаю, что если я попробую демо-версию jquery keyup (api.jquery.com/keyup/), у меня возникнет та же проблема.

Как реализовать базовую обработку событий игрового ключа?

1 Ответ

0 голосов
/ 02 мая 2010

Пример , который вы даете , имеет решение - почему бы не следовать ему?

Он использует таймер после keyDown, и его не вызывать напрямую функцию, которая выполняет эту работу. И это хитрость, вы должны использовать таймер.

Вот аналогичная проблема , которая может дать вам еще одну идею.

...