Метод isToggied возвращает значение true, если в момент его вызова была включена одна из клавиш-переключателей: <NumLock> или <CapsLock>. Он принимает единственный параметр - числовое значение 20 (виртуальный код клавиши <CapsLock>) или 14 4 (виртуальный код клавиши <NumLock>).
Пример вызова метода isToggied:
if (Key.isToggied(20)) { s = s.toLowerCase; }
Кроме вышеописанных методов, объект Key поддерживает ряд свойств, доступных только для чтения и возвращающих значения виртуальных кодов различных служебных клавиш клавиатуры. Все эти свойства приведены в табл. 19.14.
Таблица 19.14. Свойства объекта Key, возвращающие коды служебных клавиш
Свойство |
Клавиша |
Виртуальный код клавиши |
BACKSPACE |
<BackSpace> | |
CAPSLOCK |
<CapsLock> | |
CONTROL |
<Ctrl> | |
DELETEKEY |
<Del> | |
DOWN |
<Стрелка вниз> | |
END |
<End> | |
ENTER |
<Enter> | |
ESCAPE |
<Esc> | |
HOME |
<Home> | |
INSERT |
<lns> | |
LEFT |
<Стрелка влево> | |
PGDN |
<PgDn> | |
PGUP |
<PgUp> | |
RIGHT |
<Стрелка вправо | |
SHIFT |
<Shift> | |
SPACE |
<Пробел> | |
TAB |
<Tab> | |
UP |
<Стрелка вверх> |
Обработка нажатий клавиш в клипах
А теперь поговорим о том, как же собственно выполняется обработка нажатий клавиш клавиатуры. Выполнить ее можно двумя способами, которые мы и рассмотрим в этом разделе.
Обработка нажатий клавиш в клипах
Первый - более простой - способ обработки нажатий клавиш - заключается в привязке к клипу, который будет реагировать на нажатия, обработчи ка события keyDown, возникающего при нажатии клавиши. Мы рассмотрим создание этого обработчика на примере.
Создадим новый документ Flash. В нем создадим образец-клип, содержащий простую геометрическую фигуру, например, круг. Поместим экземпляр этого образца на рабочий лист и назовем его circle. Этот экземпляр мы заставим перемещаться по листу в ответ на нажатия клавиш-стрелок.
Теперь выделим наш экземпляр и привяжем к нему довольно сложный сценарий, содержащий обработчики сразу двух событий. Для удобства рассмотрим их отдельно друг от друга.
onClipEvent(load) {
d = 1;
}
Обработчик события load помещает значение в переменную d сразу после загрузки клипа. Эта переменная задает величину перемещения нашего экземпляра при нажатии любой клавиши-стрелки. Можно задать и большее число, чтобы заставить клип двигаться быстрее.
Второй фрагмент сценария выглядит более сложным:
onClipEvent(keyDown) { switch (Key.getCode()) { case Key.UP :
_root.circle._y -= d; break; case Key.DOWN :
_root.circle._y += d; break; case Key.LEFT :
_root.circle._x -= d; break; case Key.RIGHT :
_root.circle._x += d; break;
}
}
Но, несмотря на кажущуюся сложность, этот обработчик события keyDown довольно-таки прост. Он сравнивает значение виртуального кода нажатой клавиши с кодами клавиш-стрелок и, если одна из них нажата, изменяет соответствующую координату клипа circle.
Теперь запустим созданный фильм на воспроизведение в отдельном окне. Он работает!
Конечно, наш пример очень прост. Тем не менее, руководствуясь им, можно создавать и несравнимо более сложные вещи. Например - как насчет игры "15", реализованной на Flash? Или всем известного "Сапера"?