Метод 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? Или всем известного "Сапера"?


⇐ вернуться назад | | далее ⇒