Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ActionScript 2.0 ЛР.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.88 Mб
Скачать

Применение события клипа

Если в сцене присутствует экземпляр фильма-символа с присоединенными к нему скриптами, возможности такой сцены в плане изменений внешнего вида, функциональности, способности к взаимодействию с пользователем можно значительно расширить посредством использования событий клипа. Такие события позволяют запускать действия при появлении экземпляра на сцене или исчезновении с нее, при перемещении по сцене мыши и так далее.

Присутствие: onClipEvent (load)

Данный обработчик события вызывает отклик, запуская некий скрипт в момент появления экземпляра фильма-символа на сцене – полезно для выполнения инициализации фильма-символа, для программирования как воздействия экземпляра на сцену, так и воздействия сцены на него.

Отсутствие: onClipEvent (unLoad)

Раз фильм-символ может изменить сцену (или она его) при появлении, значит, что-то может произойти и при его исчезновении. Используйте этот обработчик для запуска скрипта в момент исчезновения фильма-символа из сцены.

Движущая сила: onClipEvent (enterFrame)

Если объект снабжен энергией, движущей силой, это значит, что он способен выполнять какие-то действия в течение некоторого времени. Данный обработчик события применяется для постоянного повторения какого-либо скрипта – с частотой воспроизведения кадров фильма. Если частота составляет 20 кадров в секунду, то и скрипт этого обработчика будет выполняться по 20 раз в секунду. Для этого обработчика существует множество полезнейших применений, мы рассмотрим их в этой книге.

Перемещение: onClipEvent (mouseMove)

Этот обработчик вы можете представить себе как детектор движения. Если в сцене присутствует экземпляр фильма-символа с присоединенным к нему таким обработчиком, набор действий будет выполняться каждый раз, когда пользователь перемещает мышь (хотя бы на один пиксель). Это позволяет программировать интерактивное взаимодействие, связанное с перемещением – например, определять направление перемещения, текущую позицию указателя и другое.

Применение методов как обработчиков событий

Все стандартные обработчики событий имеют эквивалентные обработчики-методы. Вот примеры:

on(press) – имяКнопки.onPress или имяФильмаСимвола.onPress

on(release) – имяКнопки.onRelease или имяФильмаСимвола.onRelease

on(enterFrame) – имяФильмаСимвола.onEnterFrame

Кроме того, существуют следующие методы-обработчики, не имеющие эквивалента среди стандартных обработчиков событий:

Кнопки / Фильмы-символы

имяФильмаИлиКнопки.onKillFocus

имяФильмаИлиКнопки.onSetFocus

Звук

имяЗвуковогоОбъекта.onLoad

имяЗвуковогоОбъекта.onSoundComplete

Текстовые поля

имяТекстовогоПоля.onChanged

имяТекстовогоПоля.onKillFocus

имяТекстовогоПоля.onScroller

имяТекстовогоПоля.onSetFocus

Объект LoadVars

имяLoadVarsОбъекта.onLoad

Поскольку некоторые из этих объектов являются "нематериальными" (например, звук, LoadVars, и т.п.), применение методов-обработчиков (в ключевом кадре на монтажном столе) – единственный способ запустить некий скрипт при наступлении события, связанного с таким объектом (в отличие от кнопок и фильмов-символов, которые можно просто выделить на сцене и присоединить скрипт к ним непосредственно).

Свойства объектов

  1. Скопируйте файл space.fla из папки «ЛР2» в свою папку. Откройте его.

Создадим Flash-приложение в котором ракету можно перетаскивать мышкой и перемещать клавишами-стрелками на клавиатуре. Кнопки со стрелками на поле смогут изменять масштаб и угол поворота ракеты. Если водить мышью над ракетой, она постепенно становится прозрачной. Чтобы опять сделать ее полностью непрозрачной, надо щелкнуть по центральной кнопке с кружком.

В правой части поля должны выводиться текущие свойства клипа Ракета:

  • _x, _y — координаты точки регистрации (отсчитываются от левого верхнего угла экрана);

  • _width, _height — ширина и высота клипа в пикселях;

  • _xscale, _yscale — масштабы по осям X и Y (равны 100 в исходном состоянии);

  • _rotation — угол поворота в градусах вокруг точки регистрации (равен 0 для клипа в библиотеке);

  • _alpha — степень непрозрачности (от 0 до 100).

  1. Переместите точку регистрации клипа Ракета на ось симметрии ракеты (для этого надо открыть клип для редактирования и переместить изображение так, чтобы крестик оказался в нужном месте).

  2. Добавьте слой Кнопки и разместите на нем 1 кнопку типа Кнопка0 и 4 кнопки типа Кнопка из библиотеки. С помощью панели Transform (меню WindowsTransform или клавиши Ctrl+T) разверните три кнопки со стрелками на 90, 180 и 270 градусов. Расположите кнопки ровно. Присвойте кнопкам имена Left, Right, Up и Down соответственно.

Центральная кнопка с кружком будет восстанавливать полную непрозрачность ракеты, кнопки «влево» и «вправо» вращают ее (изменяют свойство _rotation), а кнопки «вверх» и «вниз» — изменяют размеры (свойства _xscale и _yscale).

В языке ActionScript (так же, как в Си и Java) для операций увеличения или уменьшения значений переменных на некоторую величину часто используется сокращенная запись:

a = a - 5;

b = b + 10;

выполняется точно так же, как

a -= 5;

b += 10;

  1. Добавьте код для кнопок.

  • Центральная кнопка:

on (release) {

rocket._alpha = 100;

}

  • Стрелка «влево»:

on (release) {

rocket._rotation -= 10;

}

  • Стрелка «вправо» — то же самое, но со знаком «плюс».

  • Стрелка «вниз»

on (release) {

rocket._xscale += 5;

rocket._yscale += 5;

}

  • Стрелка «вверх» — то же самое, но со знаком «минус». Просмотрите результат и сохраните файл.

  1. Добавьте текст _x: и справа от него — еще одно текстовое поле для вывода текущей координаты _x. Для него в панели Properties установите тип Dynamic Text, имя x и ширину W=50.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]