Здравствуйте, я делаю так (правда это больше напоминает хак):
..и это работает быстро и в общем то меня вполне устраивает. Правда по задуманному дизайну мне не нужна кнопка, но я добавляю ее в группу и задвигаю .margin-ном за приделы окна, так что бы ее не было видно.
(Хотя бы одна кнопка нужна обязательно, без кнопки в окне, такой EventListеner не срабатывает.)
Проблема такого решения в том что я бы хотел отлавливать нажатие на курсорные клавиши и PageUp, PageDown.
Например, если сделать по другому и тип окна будет "palette" а не как у меня "dialog", то появится возможность в цикле опрашивать:
myKeyState = ScriptUI.environment.keyboardState;
в этом случае курсорные клавиши и PageUp, PageDown ловятся, но с неприятной задержкой.
Я понимаю, что опрашивать клавиатуру в цикле это видимо совсем не правильно, и для этих целей все-таки нужен EventListener, но не никак не могу сообразить как это сделать.
Было бы здорово, если бы кто то поделился своим "правильным" способом опроса клавиатуры.
Код:
var window = new Window("dialog", undefined, undefined, {borderless: true});
var text = window.add('statictext', undefined, "Press Any Key");
var fakeButton = window.add('button', undefined, 'Key');
fakeButton.active = true;
window.addEventListener('keydown', pressed, false);
window.show();
//Pressed Any Key
function pressed(k) {
text.text = k.keyName;
}
..и это работает быстро и в общем то меня вполне устраивает. Правда по задуманному дизайну мне не нужна кнопка, но я добавляю ее в группу и задвигаю .margin-ном за приделы окна, так что бы ее не было видно.
(Хотя бы одна кнопка нужна обязательно, без кнопки в окне, такой EventListеner не срабатывает.)
Проблема такого решения в том что я бы хотел отлавливать нажатие на курсорные клавиши и PageUp, PageDown.
Например, если сделать по другому и тип окна будет "palette" а не как у меня "dialog", то появится возможность в цикле опрашивать:
myKeyState = ScriptUI.environment.keyboardState;
в этом случае курсорные клавиши и PageUp, PageDown ловятся, но с неприятной задержкой.
Я понимаю, что опрашивать клавиатуру в цикле это видимо совсем не правильно, и для этих целей все-таки нужен EventListener, но не никак не могу сообразить как это сделать.
Было бы здорово, если бы кто то поделился своим "правильным" способом опроса клавиатуры.