Дострочное пересдача экзамена
|
Объекты и их использование
Расширение интерактивных возможностей с применением объекта key
Объект Key – очень полезный инструмент, позволяющий отслеживать события клавиш (то есть, взаимодействие пользователя с клавиатурой). С помощью объекта Key вы сможете:
- Узнать, не нажата ли в данный момент определенная клавиша
- Определить последнюю нажатую клавишу
- Получить значение кода последней нажатой клавиши
- Создать слушатель для отслеживания событий клавиатуры
- Определить, в каком состоянии находится та или иная из клавиш-переключателей (например, Caps Lock)
Объект Key – глобальный, а это значит, что вы не можете создать несколько экземпляров его. Чаще всего этот объект применяется для определения нажатия той или иной клавиши. Синтаксис этой операции таков:
Key.isDown(Key.TAB);
В приведенной здесь строке используется метод isDown() объекта Key для определения нажатия на клавишу. Этот метод возвращает результат true либо false. В качестве параметра метода isDown() можно указать либо имя клавиши в объекте Key, либо числовой код этой клавиши. Например, для клавиши Tab можно указать имя – Key.TAB, либо число 9 – код этой клавиши в таблице ASCII. Следующий скрипт эквивалентен предыдущему:
Key.isDown(9);
В следующем несложном упражнении мы будем перемещать по экрану воздушный шар – с помощью клавиатуры и объекта Key.
- Откройте файл balloon1.fla из папки Lesson04/Assets.
Фильм содержит два слоя: Background и Balloon. В слое Balloon вы видите экземпляр фильма-символа, изображающего воздушный шар. В следующем упражнении мы присоединим действия к этому фильму-символу.
- Откройте панель Действия, выделите экземпляр фильма-символа, изображающего воздушный шар и введите такой скрипт:
onClipEvent (load) { speed = 3; }
К концу этого упражнения мы запрограммируем возможность перемещения шара при помощи клавиш-стрелок. При каждом нажатии на клавишу шар будет перемещаться в определенном направлении. Этот же скрипт выполняется при загрузке экземпляра фильма-символа и устанавливает значение переменной speed, которое будет определять, на сколько должен переместиться шар при каждом нажатии на клавишу. Наш скрипт устанавливает эту дистанцию равной трем пикселям.
- Не снимая выделения с экземпляра balloon, введите после предыдущего скрипта следующий:
onClipEvent (enterFrame) { if (key.isDown(key.RIGHT)) { _x += speed; } else if (key.isDown(key.LEFT)) { _x -= speed; } }
В этом скрипте применен обработчик события enterFrame, который содержит условный оператор. Key.RIGHT – это ссылка на клавишу-стрелку "вправо", а key.LEFT, соответственно, "влево". Вот как происходит выполнение скрипта. При нажатии на клавишу "вправо" к текущей горизонтальной координате экземпляра фильма-символа прибавляется значение speed (шар перемещается вправо). Если же клавиша-стрелка "вправо" не нажата, то эта часть скрипта игнорируется и выполняется следующая секция – если нажата клавиша "влево", то из текущей горизонтальной координаты экземпляра фильма-символа вычитается значение speed (шар перемещается влево).
- В обработчик события enterFrame добавьте следующий скрипт:
if (key.isDown(key.UP)) { _y -= speed; } else if (key.isDown(key.DOWN)) { _y += speed; }
Скрипт очень похож на предыдущий. Однако здесь оператор if проверяет нажатия на клавиши-стрелки "вверх" и "вниз". В первой части этого оператора проверяется, не нажата ли клавиша "вверх", и если это так, из текущей вертикальной координаты экземпляра фильма-символа вычитается значение speed (шар перемещается вверх). Если же нажата клавиша "вниз", то к текущей вертикальной координате экземпляра фильма-символа прибавляется значение speed (шар перемещается вниз).
- Выполните команду Управление > Проверить фильм (Control > Test Movie). С помощью клавиш-стрелок управляйте перемещением воздушного шара.
Условия, которые мы запрограммировали, проверяются при каждом событии enterFrame, то есть при смене кадра. Если обнаружено, что одна из клавиш находится в нажатом состоянии, шар перемещается в соответствующем направлении.
- Закройте тестовый фильм и сохраните свою работу как balloon2.fla.
Теперь вы знаете, как отслеживать нажатия на клавиши, чтобы в результате что-то происходило. Применений для этого множество – от перелистывания страниц в слайд-шоу до создания игр.