Перехват нажатий клавиш
Можно использовать методы предопределенного объекта 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т переводчика:
- Почему-то в родном доке Макромедия называет эти коды виртуальными, я заменил на более привычные десятичные (Decimal или Dec), чем они по сути и являются