
- •Основы языка 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
- •Градиентная заливка
- •Квадраты
- •Двойной щелчок
- •Текстовое поле
Движение на плоскости Равномерное движение
В следующем примере мы научимся управлять машиной с помощью четырех клавиш-стрелок:
«вверх» — движение вперед;
«вниз» — движение назад;
«влево» — поворот влево на 5 градусов;
«вправо» — поворот вправо на 5 градусов.
Необходимо обеспечить заезд на свободное место на парковке. Перед проверкой ролика сначала щелкните по нему мышью. Каждый щелчок по фону возвращает машину в исходное положение. Управление движением машины должно осуществляться клавишами управления (со стрелками).
Движение на плоскости более сложно, чем одномерное, и требует некоторых математических знаний. Пусть машину надо передвинуть на расстояние L вперед (в соответствии с ее углом поворота _rotation, который на схеме ниже обозначен греческой буквой α).
По схеме видно, что x-координата машины увеличивается на Δx, а y-координата уменьшается на Δy (учитывая, что ось Y направлена вниз). Эти величины вычисляются с помощью функция синус и косинус (это методы объекта Math).
Единственная сложность состоит в том, что для методов Math.sin() и Math.cos() необходимо задать угол в радианах, а свойство _rotation определяет угол в градусах. Для перевода из градусов в радианы надо умножить величину угла на π (константа Math.PI) и разделить на 180.
Скопируйте файл car_move.fla в свою папку.
Добавьте обработчики событий машины
onClipEvent (load) {
L = 5;
function move ( d ) {
r = _rotation*Math.PI/180;
_x += d*Math.sin(r);
_y -= d*Math.cos(r);
}
}
onClipEvent (enterFrame){
if (Key.isDown(Key.UP)) move(L);
else
if (Key.isDown(Key.DOWN)) move(-L);
if (Key.isDown(Key.LEFT)) _rotation -= 5;
else
if (Key.isDown(Key.RIGHT)) _rotation += 5;
}
В обработчике enterFrame обрабатываются четыре клавиши-стрелки: при нажатии на клавиши «вверх» и «вниз» машина двигается вперед и назад, а клавиши «влево» и «вправо» разворачивают ее в нужном направлении.
Самостоятельно сделайте так, чтобы щелчок мышкой по фону возвращал машину в исходное положение.
Сохраните файл с именем ЛР4_2.fla.
Неравномерное движение
Теперь попробуем сделать так, чтобы скорость можно было изменять стрелками «вверх» (увеличивать) и «вниз» (уменьшать). Если вообще не нажимать клавиши, объект постепенно замедляет движение и в конце концов останавливается.
Именно так ведет себя самолет в следующем клипе. Если он улетит за границы поля, щелчок по фону вернет самолет в начальное положение.
Скопируйте файл plane.fla из папки ЛР. Из библиотеки символов выберите символы map и plane. Разместите на рабочем столе. Выделите клип-самолет и добавьте к нему код
onClipEvent (load) {
v = 0;
function move ( d ) {
r = _rotation*Math.PI/180;
_x += d*Math.sin(r);
_y -= d*Math.cos(r);
}
}
onClipEvent (enterFrame){
if (Key.isDown(Key.UP)) v += 0.2;
else
if (Key.isDown(Key.DOWN)) v = Math.max(0,v - 0.3);
else v = Math.max(0,v - 0.1);
move ( v );
if (Key.isDown(Key.LEFT)) _rotation -= 5;
else
if (Key.isDown(Key.RIGHT)) _rotation += 5;
}
Этот код очень похож на код предыдущего примера. Переменная v обозначает скорость самолета, вначале она равна нулю. Если нажата клавиша «вверх», скорость увеличивается на 0.2, клавиша «вниз» уменьшает ее на 0.3, если ни одна клавиша не нажата, скорость уменьшается на 0.1.
Самолет не имеет заднего хода, поэтому для того, чтобы скорость не стала отрицательной, применяется метод Math.max(), выбирающий максимальное из двух значений в скобках.
Самостоятельно измените размер и положение клипа-самолета, чтобы движение стало более реалистичным. Если самолет улетит за границы поля, щелчок по фону должен вернуть его в начальное положение.
Сохраните файл с именем ЛР4_3.fla.