Для взаимодействия с пользователями интерактивные flash-приложения, как правило, используют или мышиные события (MouseEvent), или ввод с клавиатуры (KeyboardEvent). Именно о клавиатурных событиях в языке ActionScript 3.0 и пойдёт речь далее.
Первым делом стоит заметить, что имеется два вида событий клавиатуры:
- KeyboardEvent.KEY_DOWN - пользователь нажимает клавишу клавиатуры;
- KeyboardEvent.KEY_UP - пользователь отпускает клавишу клавиатуры.
То есть мы имеем возможность отлавливать или момент, когда пользователь нажимает клавишу, или момент, когда пользователь клавишу отпускает. Использование того или иного события будет зависеть от ваших предпочтений или от требований к разрабатываемому вами флеш-проекту.
Код ActionScript 3.0:
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyboardDown);
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyboardUp);
function onKeyboardDown(event:KeyboardEvent):void
{
trace("Вы нажали клавишу на клавиатуре!")
}
function onKeyboardUp(event:KeyboardEvent):void
{
trace("Вы отпустили клавишу на клавиатуре!")
}
Но мало знать, что нажата какая-то клавиша на клавиатуре. Как правило, требуется узнать, какая именно клавиша нажата или отпущена пользователем. И для этого в языке ActionScript 3.0 есть целый набор полезных свойств:
- keyCode - возвращает код нажатой или отпущенной клавиши;
- charCode - возвращает значение кода символа для нажатой или отпущенной клавиши;
- ctrlKey - возвращает true, если клавиша Ctrl активна, а false возвращается, если клавиша Ctrl неактивна (это свойство будет вам полезно, если вы решите создать сочетание клавиш вида КЛАВИША + CTRL).
- shiftKey - возвращает true, если клавиша Shift активна, а false возвращается, если клавиша Shift неактивна (это свойство будет вам полезно, если вы решите создать сочетание клавиш вида КЛАВИША + SHIFT).
- keyLocation - указывает положение нажатой или отпущенной клавиши на клавиатуре (это свойство полезно, если надо различать те клавиши, которые дублируются на клавиатуре; свойство keyLocation, например, позволит вам различать между собой правую и левую клавиши Ctrl).
Таким образом, перед нами открываются широчайшие возможности по отслеживанию событий клавиатуры. При этом мы может отлавливать не только активность одиночных клавиш, но и сложные клавишные комбинации.
Код ActionScript 3.0:
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyboardDown);
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyboardUp);
function onKeyboardDown(event:KeyboardEvent):void
{
trace("===> Вы нажали клавишу на клавиатуре! <===")
trace("Код клавиши: " + event.keyCode);
trace("Значение кода символа: " + event.charCode);
trace("Нажата ли клавиша Ctrl: " + event.ctrlKey);
trace("Нажата ли клавиша Shift: " + event.shiftKey);
trace("Расположение клавиши: " + event.keyLocation);
}
function onKeyboardUp(event:KeyboardEvent):void
{
trace("===> Вы отпустили клавишу на клавиатуре! <===")
trace("Код клавиши: " + event.keyCode);
trace("Значение кода символа: " + event.charCode);
trace("Нажата ли клавиша Ctrl: " + event.ctrlKey);
trace("Нажата ли клавиша Shift: " + event.shiftKey);
trace("Расположение клавиши: " + event.keyLocation);
}
А теперь давайте посмотрим, как мы можем отлавливать активность конкретной клавиши клавиатуры. Например, нам надо отследить момент нажатия пользователем клавиши ПРОБЕЛ.
Код ActionScript 3.0:
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyboardDown);
function onKeyboardDown(event:KeyboardEvent):void
{
if (event.keyCode == 32)
{
trace("Вы нажали ПРОБЕЛ!");
}
}
Как видите, нам для этого потребовалось написать простейшее условие. Аналогичным образом можно отловить и активность прочих клавиш или сочетаний клавиш.
Но возникает небольшая трудность. Дело в том, что нам надо знать код той клавиши, активность которой мы отслеживаем. Конечно, можно воспользоваться справочником или приведённым ранее кодом для определения значений свойств KeyboardEvent. Но это не очень удобно. Гораздо удобнее для этого написать небольшую программку, которая и будет возвращать всю необходимую информацию. Например, так:
Обратите внимание, что при использовании клавиатурного ввода флеш-приложение должно находится в фокусе. Для этого достаточно кликнуть курсором мышки в любом месте флеш-ролика. Если этого не сделать, то Flash Player просто не поймёт, что данные команды клавиатуры предназначены именно для него.
Для определения значения свойства keyCode для той или иной клавиши клавиатуры вы также можете воспользоваться вспомогательным AIR-приложением KeyCode от www.fmajakovskij.info (<12kb).
На этом всё. Скачать исходники к уроку и программу KeyCode можно здесь.
Примечания
[!] В данном уроке события клавиатуры рассматривались для ОС Windows.
[!] События клавиатуры часто не работают или работают некорректно в среде разработки. Поэтому, чтобы проверить работу с клавиатурой того или иного флеш-приложения, надо его скомпилировать и запустить в браузере или в автономном Flash Player.
Услуга: Прогон по РУ базе ( 120 000 форумов)
Цена: 5$ + предоставление отчета
Услуга: Прогон по Микс базе (150 000 форумов)
Цена: 15$ + Предоставление отчета
Услуга: Прогон по DLE сайтам (профили)+спам коментами
Цена: 15$ + Предоставление отчета
Услуга: Качественные прогоны 6 раз в месяц по РУ Микс базе
Цена: 35$ + Предоставление отчета
Результаты прогона:
1. Гарантированный прирост ссылок.
3. Тысячи переходов с форумов по ссылкам от прогона.
Условия работы
1. Работаю только по полной предоплате.
2. Оплата на Webmoney
3. По договоренности возможна оплата на другие платежные системы
Реквизиты для оплаты:
Webmoney кошелек: Z958186834482
Контакты для свзи:
Email: deprogone@yandex.ru