Как правильно опрашивать клавиатуру из скрипта?

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

frSaSA

Участник
Топикстартер
Сообщения
8
Реакции
0
Здравствуйте, я делаю так (правда это больше напоминает хак):

Код:
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, но не никак не могу сообразить как это сделать.

Было бы здорово, если бы кто то поделился своим "правильным" способом опроса клавиатуры. :-)
 

Не по теме:
Чем больше я читаю, тем больше убеждаюсь, что вам нужно все таки плагин писать, а не скрипт... ;)
 
:-) :-) :-) эт да, но пожалуй это откинет мне на пару месяцев назад, а ведь со скриптами, почти получилось почти работает! :-)
 
@Skvoznyak, да, да этот док зачитан до дыр, от сюда я и драл :-) суперский док не представляю, чтоб я без него делал.

По тому что там приводится, кнопки pageUp, pageDown срабатывают только если они внутри компонента "edittext", в общем это тоже как не правильно имхо.
 
Статус
Закрыто для дальнейших ответов.