Как на Javascript узнать, какая из клавиш нажата? (Alt, Shift, Control)

  • Автор темы Автор темы teatral
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

teatral

Участник
Топикстартер
Сообщения
350
Реакции
365
Создаю пользовательскую палитру с помощью Adobe Configurator
Теперь хочу, чтобы скрипт, привязанный к кнопкам узнал, какие из клавиш (Alt, Shift, Control) нажаты при клике на кнопку
Предполагаю, что к этому имеет отношение метод AddEventListener(), но как в таком случае вычислить саму кнопку, к которой применять этот метод?
 
Самое близкое, что можно сделать - типа как тут.
 
  • Спасибо
Реакции: Linxy и teatral
Сейчас скажу извращенную фантазию, не падайте со стула
А что если как в приведенном примере:
Делается диалоговое окно
var w = new Window("palette");
w.addEventListener ("keydown", function (kd) {pressed (kd)});
прикручивается функция закрытия этого окна по таймеру

По нажатию кнопки палитры открывается диалоговое окно, если нажата какая-то кнопка, function pressed сохранит эту инфу для основного скрипта, если же не нажата - окно закроется по таймеру и продолжится основной скрипт
'%)'
 
А сколько времени на таймере выставлять? Вдобавок, пробовать надо, тормозить, наверное, будет, да и не факт, что если клавиша была нажата до создания окна, до обработчика ее нажатие дойдет.
 
  • Спасибо
Реакции: Linxy
Есть штатный метод получения состояния спецклавиш в любой момент времени выполнения скрипта.
Код:
ScriptUI.environment.keyboardState
Допустим, для того, чтобы узнать, была ли нажата клавиша Control при запуске скрипта, достаточно использовать следующую конструкцию:
Код:
if (ScriptUI.environment.keyboardState.ctrlKey) {
    $.writeln('Control key pressed');
} else {
    $.writeln('Control key not pressed');
}
Работает как при запуске из ESTK, так и через панель скриптов. Только при работе из панели трудно запустить скрипт, зажав спецклавиши — модифицируется действие самой панели.
 
Статус
Закрыто для дальнейших ответов.