
- •Основы языка ActionScript 2.0 Для чего нужен Actionscript?
- •События
- •Действия
- •Операторы
- •Ключевые слова
- •Фигурные скобки
- •Точка с запятой
- •Кавычки
- •Комментарии
- •Отступы и пробелы
- •Переменные Объявление
- •Видимость переменных
- •Присваивание
- •Объекты
- •Условные операторы
- •Цикл с переменной
- •Циклы с условием
- •Перечисление свойств
- •Управление циклом
- •Лабораторная работа №1 «Знакомство с ActionScript» Панель Actions
- •Инструменты работы с кодом
- •Управление проигрыванием. Кнопки Команды управления
- •Скопируйте файл ship.Fla из папки лр1 в свою папку и в дальнейшем работайте только с ним!
- •Реакции на события
- •Метки кадров
- •Адреса: дети, родители и корень
- •Абсолютные адреса
- •Относительные адреса
- •Индивидуальное задание
- •Лабораторная работа №2 «Свойства и события клипа»
- •Свойства
- •Типы объектов
- •Обработчики событий
- •Применение события клипа
- •Присутствие: onClipEvent (load)
- •Отсутствие: onClipEvent (unLoad)
- •Движущая сила: onClipEvent (enterFrame)
- •Перемещение: onClipEvent (mouseMove)
- •Применение методов как обработчиков событий
- •Свойства объектов
- •События клипа
- •События мыши
- •Перетаскивание
- •События клипа
- •Отличие кнопки от клипа
- •Обработка событий мыши и клавиатуры
- •Функции
- •Типы функций
- •Защита паролем
- •Индивидуальное задание
- •Лабораторная работа №3 «Использование объектов среды Flash» Глобальный объект Key
- •Самостоятельное задание
- •Работа с текстом (String, Selection) Объект String — строка
- •Объект Selection
- •Использование объекта Color
- •Массивы Основные понятия
- •Копирование
- •Многомерные массивы
- •Методы для работы с массивами
- •Работа с массивами
- •Дата и время Объект Date
- •Периодический вызов функции
- •Индивидуальное задание
- •Лабораторная работа № 4 «Организация одномерного движения объектов» Математические функции
- •Одномерное движение
- •Движение на плоскости Равномерное движение
- •Неравномерное движение
- •Организация отскока объектов Одномерное движение
- •Индивидуальное задание
- •Лабораторная работа № 5«Организация движения объектов по наклонной плоскости»
- •Векторы
- •Отскок от наклонной плоскости
- •Шарик в кольце
- •Маятник
- •Загрузка символа из библиотеки
- •Определение границ клипа
- •Точка и клип Вторая форма hitTest
- •Трассировка растровых рисунков
- •Точки вдоль границы
- •Сложная фигура и клип Два подхода
- •Цикл по всем дочерних объектов
- •Локальные и глобальные координаты
- •Обработка события для звука
- •Загрузка фильмов
- •Использование Переменных
- •Локальные переменные
- •Типы функций
- •Обработчики событий
- •Описание проекта
- •Загрузка Flash-фильмов
- •Работа с рисунками
- •Увеличение рисунка
- •Маски клипов
- •Звуковые файлы
- •Баннеры
- •Компоненты Обзор
- •Текстовые поля
- •Форматирование
- •Текст-ссылка
- •Работа с базой пользователей
- •Регистрация
- •Радиокнопки
- •Выпадающий список
- •Выключатели
- •Формат компонентов
- •Добавление пользователя
- •Индивидуальное задание
- •Лабораторная работа № 9 «Рисование из программы»
- •Отрезки
- •Заливки Одноцветная заливка
- •Добавление методов к MovieClip
- •Градиентная заливка
- •Квадраты
- •Двойной щелчок
- •Текстовое поле
Применение события клипа
Если в сцене присутствует экземпляр фильма-символа с присоединенными к нему скриптами, возможности такой сцены в плане изменений внешнего вида, функциональности, способности к взаимодействию с пользователем можно значительно расширить посредством использования событий клипа. Такие события позволяют запускать действия при появлении экземпляра на сцене или исчезновении с нее, при перемещении по сцене мыши и так далее.
Присутствие: 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, и т.п.), применение методов-обработчиков (в ключевом кадре на монтажном столе) – единственный способ запустить некий скрипт при наступлении события, связанного с таким объектом (в отличие от кнопок и фильмов-символов, которые можно просто выделить на сцене и присоединить скрипт к ним непосредственно).
Свойства объектов
Скопируйте файл space.fla из папки «ЛР2» в свою папку. Откройте его.
Создадим Flash-приложение в котором ракету можно перетаскивать мышкой и перемещать клавишами-стрелками на клавиатуре. Кнопки со стрелками на поле смогут изменять масштаб и угол поворота ракеты. Если водить мышью над ракетой, она постепенно становится прозрачной. Чтобы опять сделать ее полностью непрозрачной, надо щелкнуть по центральной кнопке с кружком.
В правой части поля должны выводиться текущие свойства клипа Ракета:
_x, _y — координаты точки регистрации (отсчитываются от левого верхнего угла экрана);
_width, _height — ширина и высота клипа в пикселях;
_xscale, _yscale — масштабы по осям X и Y (равны 100 в исходном состоянии);
_rotation — угол поворота в градусах вокруг точки регистрации (равен 0 для клипа в библиотеке);
_alpha — степень непрозрачности (от 0 до 100).
Переместите точку регистрации клипа Ракета на ось симметрии ракеты (для этого надо открыть клип для редактирования и переместить изображение так, чтобы крестик оказался в нужном месте).
Добавьте слой Кнопки и разместите на нем 1 кнопку типа Кнопка0 и 4 кнопки типа Кнопка из библиотеки. С помощью панели Transform (меню Windows—Transform или клавиши Ctrl+T) разверните три кнопки со стрелками на 90, 180 и 270 градусов. Расположите кнопки ровно. Присвойте кнопкам имена Left, Right, Up и Down соответственно.
Центральная кнопка с кружком будет восстанавливать полную непрозрачность ракеты, кнопки «влево» и «вправо» вращают ее (изменяют свойство _rotation), а кнопки «вверх» и «вниз» — изменяют размеры (свойства _xscale и _yscale).
В языке ActionScript (так же, как в Си и Java) для операций увеличения или уменьшения значений переменных на некоторую величину часто используется сокращенная запись:
a = a - 5;
b = b + 10;
выполняется точно так же, как
a -= 5;
b += 10;
Добавьте код для кнопок.
Центральная кнопка:
on (release) {
rocket._alpha = 100;
}
Стрелка «влево»:
on (release) {
rocket._rotation -= 10;
}
Стрелка «вправо» — то же самое, но со знаком «плюс».
Стрелка «вниз»
on (release) {
rocket._xscale += 5;
rocket._yscale += 5;
}
Стрелка «вверх» — то же самое, но со знаком «минус». Просмотрите результат и сохраните файл.
Добавьте текст _x: и справа от него — еще одно текстовое поле для вывода текущей координаты _x. Для него в панели Properties установите тип Dynamic Text, имя x и ширину W=50.