Я использую window.requestAnimationFrame
для создания игрового цикла.addEventListener с requestAnimationFrame
Все работает отлично, но когда я пытаюсь добавить слушателя событий, он срабатывает сотни раз очень быстро.
Я пробовал использовать закрытие, но это, похоже, не работает.
game.update = function(){
//code that runs every frame
window.addEventListener('keydown', function(){
console.log("message");
},false);
}
Я хочу, чтобы вызвать функцию РАЗ на KeyDown событие не несколько раз.
* «Я хочу вызвать функцию ONCE в событии keydown не многократно». * Затем вам нужно отпереть функцию после ее вызова. Почему вы все равно привязываете обработчик событий внутри цикла? Почему не на улице? Вы хотите, чтобы обработчик выполнялся один раз за кадр? Пожалуйста, объясните, какую проблему вы пытаетесь решить. –
Вам нужно добавить прослушивателей событий один раз, а не внутри цикла обновления. Ваш цикл обновления должен только добавлять прослушиватели событий к объектам, которые он создает при их создании. –
Просто не запускайте этот код внутри функции, которая запускается каждый кадр –