Показать сообщение отдельно
  #3 (permalink)  
Старый 06.10.2018, 15:25
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Ловить нажатия и отжатия. Самого по себе статуса какой либо клавиши нигде нет.
Примерно так:
//в самом начале 
var KEYS = (function(parent){
  var keys = {
    pressed: {},

    isPressed: function(key){
      if(typeof key === 'string') 
        key = key.toUpperCase().charCodeAt(0);
      return key in this.pressed;
    },
    handleEvent: function(event){
      switch(event.type){
        case 'blur':
          for(var k in this.pressed){
            delete this.pressed[k];
          }
          break;
        case 'keyup':
          delete this.pressed[event.keyCode];
          break;
        case 'keydown':
          this.pressed[event.keyCode] = new Date();
          break;
      }
    }
  };
  parent.addEventListener('keyup', keys);
  parent.addEventListener('keydown', keys);
  parent.addEventListener('blur', keys);
  return keys;
}(window));
//сильно позже
if(KEYS.isPressed('A') || KEYS.isPressed('D')) 
  alert('!')
__________________
29375, 35
Ответить с цитированием