Переопределение действия для горячей клавиши

20 Дек 2016
798
123
Допустим, у меня на F1 стоит выбор героя. Нужно перехватить нажатие этой клавиши и выполнить свое действие, вместо выбора героя.
В js вообще есть адекватный способ обработки клавиатуры? В идеале мне бы просто назначить какую-то функцию, которая получает код нажатой клавиши, тип нажатия, и должна вернуть, стоит ли транслировать это нажатие последующим обработчикам. Но такое есть только для мыши.
С помощью Game.CreateCustomKeyBind() и Game.AddCommand() ничего не получается.
Во-первых, не понял как отменить бинд, сделанный с помощью CreateCustomKeyBind. Если игрок посреди игры переназначит клавишу, то я не смогу удалить бинд со старой, и она станет недоступна для других команд.
AddCommand - вообще какая-то говнина. Удалить команду нельзя, дважды использовать для одной команды нельзя, однако при перезагрузке скрипта работать перестанет. Предполагаю, что при переподключении все команды, сделанные с помощью AddCommand, перестанут работать.
$.RegisterKeyBind требует фокус на какой-либо панели, а из-за этого все управляющие кнопки перестают работать.
Других способов взаимодействия с клавиатурой не нашел.
Кому молиться?
 
Реклама: