ActionScript краткий обзор

       

Перехват нажатий клавиш


Можно использовать методы предопределенного объекта Key для определения последней клавиши, которая была нажата пользователем. Чтобы использовать его методы, просто вызывайте объект, как сделано в следующем примере:

Key.getCode();

Можно получать любые десятичные (Dec) 1 коды или ASCII-значения нажатых клавиш:

Для получения Dec-кода последней нажатой клавиши, используется getCode метод.
Для получения ASCII-значения последней нажатой клавиши, используется getAscii метод.

Dec-код имеется у каждой физической клавиши на клавиатуре. Например, клавиша стрелки "влево" имеет Dec# 37. Используя Dec-код, можно гарантировать, что средства управления клипа будут одинаковыми на любой клавиатуре, независимо от языка или платформы.



ASCII (American Standard Code for Information Interchange) значения связаны с первыми 127 символами каждой кодовой таблицы. Они обеспечивают информацию о символе на экране. Например, символ "A" и символ "a" имеют различные значения ASCII.

Общее место для использования Key.getCode в параметрах onClipEvent. При прохождении через keyDown как параметр, скрипт получает команду проверить значение последней нажатой клавиши (фактически, нажатой в данный момент). В этом примере использовано Key.getCode для управления перемещением НЛО. Нажимайте на курсорные клавиши для передвижения НЛО внутри клипа.

Для создания управления клипом с клавиатуры:

1 Решите какие клавиши использовать и определите их Dec-коды, используя один из следующих подходов:
См. список клавишных кодов на Клавиши клавиатуры и их кодовые значения: Краткий обзор.
Используйте константу объекта Key. (В списке инструментов, выбрать Objects (объекты), затем выбрать Key (клавиша). Константы перечислены заглавными буквами.)
Назначить следующее команды, затем выбрать Control > Test Movie и нажать нужную клавишу:
onClipEvent(keyDown) { trace(Key.getCode()); }
2 Выделить муви-клип на рабочем поле.
3 Выбрать Window > Actions.
4 Дважды щелкнуть на onClipEvent команде в Actions категории списка.
5 В окне параметров выбрать Key down событие.
6 Дважды щелкнуть на if команде в Actions категории списка.
7 Щелкнуть внизу окна в строке ввода условия (Condition), выбрать Objects; затем выбрать Key и getCode.
8 Дважды щелкнуть на операторе эквивалентности (==) в категории Operators (Операторы) списка.
9 Справа от оператора эквивалентности ввести Dec-код клавиши.
Ваш код будет выглядеть следующим образом:
onClipEvent(keyDown) { if (Key.getCode() == 32) { } }
10 Выбрать действие, которое будет выполняться, если нажата нужная клавиша.
Например, следующая команда при нажатии на клавишу пробела (Dec# 32), заставит сделать переход на следующий кадр основной линейки (Timeline):
onClipEvent(keyDown) { if (Key.getCode() == 32) { nextFrame(); } }

Для получения большей информации о методах объекта Key, см. соответствующий подраздел ActionScript Словаря.

Oт переводчика:

  1. Почему-то в родном доке Макромедия называет эти коды виртуальными, я заменил на более привычные десятичные (Decimal или Dec), чем они по сути и являются


  2. Содержание раздела