Клавиши "Вверх", "Вниз", "Влево", "Вправо" всегда одинаковы?
Как видно из названия, в моем коде я использую следующие коды:
- Слева: 37
- Вверх: 38
- Вправо: 39
- Вниз: 40
И проверьте эти коды клавиш, чтобы определить мое действие. Мой вопрос: всегда ли они остаются прежними? Если бы я использовал клавиатуру DVORAK или неанглийскую клавиатуру, эти коды клавиш остались бы прежними?
В той же строке есть ли предпочтительный способ для обнаружения этих нажатий клавиш?
В настоящее время я делаю это следующим образом:
var Key = {
_pressed: {},
LEFT: 37,
UP: 38,
RIGHT: 39,
DOWN: 40,
isDown: function (keyCode) {
return this._pressed[keyCode];
},
onKeydown: function (event) {
this._pressed[event.keyCode] = true;
if (Key.isDown(Key.UP))
//do up action
else if (Key.isDown(Key.DOWN)) {
//do down action
}
delete this._pressed[event.keyCode];
}
};
Ответы
Ответ 1
Да, клавиши клавиш со стрелками всегда одинаковы, независимо от раскладки клавиатуры.
Я регулярно использую разные раскладки клавиатуры (Dvorak, русский, украинский, иврит, испанский), и я пробовал их все в JavaScript, и они дают согласованные результаты для клавиш со стрелками.