
- •Основы языка 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
- •Градиентная заливка
- •Квадраты
- •Двойной щелчок
- •Текстовое поле
События клипа
Клипы (символы типа Movie Clip) могут реагировать на те же события, что и кнопки, с помощью обработчиков on (...). Кроме того, есть еще несколько особых событий, которых у кнопок нет. Наиболее важные из них:
load — клип полностью загружен;
enterFrame — произошел переход к следующему кадру клипа;
mouseDown — нажата кнопка мыши;
mouseMove — мышь переместилась;
mouseUp — кнопка мыши отпущена;
keyDown — нажата клавиша на клавиатуре;
keyUp — клавиша отпущена.
Для обработки этих событий используются обработчики onClipEvent (...), которые можно добавить на панели Actions, предварительно выделив клип.
При частоте кадров 12, событие enterFrame возникает 12 раз в секунду, даже если клип содержит единственный кадр. Мы используем это событие для того, чтобы постоянно обновлять x-координату ракеты на экране.
Динамическое текстовое поле с именем x имеет свойство text, которое можно изменять из программы (это и есть надпись на экране). Для обращения к свойству объекта используется точка, то есть адрес текста принимает вид x.text. Таким образом, запись текущей x-координаты клипа rocket в текстовое поле x должна выглядеть так:
x.text = rocket._x;
Выделите ракету на сцене и откройте панель Actions (клавиша F9). Введите код обработчика события enterFrame:
onClipEvent (enterFrame) {
x.text = rocket._x;
}
Просмотрите результат.
Вы увидели, что x-координата на экране по-прежнему равна нулю, хотя клип находится не на левой границе экрана, и значит его действительная x-координата больше нуля.
Чтобы обнаружить ошибку, мы применим трассировку — вывод (в дополнительное окно) отладочных сообщений, которые позволят понять, что в самом деле происходит внутри программы.
Добавьте в обработчик строчку
trace ( x );
При запуске появится окно Output (включается также через меню Window—Output или клавишей F2), в котором появляются строчки undefined.
Происходит следующее: мы попросили программу сказать, что же такое x в этой точке, и в ответ получили, что x — это непонятно что (undefined, не определено). Значит, текстовое поле x не найдено — неверно задан его адрес. Сообщение появляется 12 раз в секунду, каждый раз, когда происходит событие enterFrame. Заметим, что точно такой же результат даст строчка
trace ( rocket );
Значит, обращение к клипу тоже неверно.
Дело в адресах. В обработчиках событий клипа текущим монтажным столом считается сам клип. Поэтому для того, чтобы обратиться к текстовому полю x, которое принадлежит не клипу, а главному монтажному столу, его адрес надо записать в виде _root.x (абсолютный адрес) или _parent.x (относительный адрес).
В правой части оператора надо обратиться к свойству _x текущего объекта, то есть написать this._x (относительный адрес) или _root.rocket._x (абсолютный адрес). Но можно то же самое написать проще, ведь _x обозначает то же самое, что this._x.
Чтобы не ошибиться при обращении к объекту, можно нажать на кнопку
Insert a Targent Part и выбрать из списка существующий объект. Программа автоматически вставит его адрес, относительный (при выборе варианта Relative) или абсолютный (вариант Absolute).
Выделите ракету на сцене и откройте панель Actions. Исправьте код обработчика события enterFrame:
onClipEvent (enterFrame) {
_root.x.text = _x;
}
Попробуйте вставить ссылку на текстовое поле с помощью кнопки Insert a Targent Part.
Добавьте аналогичные пары (статический текст и динамическое текстовое поле) для остальных свойств клипа и дополните обработчик события командами, заполняющими эти поля. Просмотрите результат.
Заметьте, что координата _x и другие свойства клипа — целые числа. При записи в текстовые поля они будут автоматически преобразованы в символьный вид.
Значения свойств клипа можно не только читать, но и изменять. После загрузки клипа в память мы установим его начальные координаты в обработчике события load.
Добавьте в код клипа Ракета обработчик события load (клип загружен в память):
onClipEvent (load) {
_x = 100;
_y = 100;
}