
- •Основы языка 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
- •Градиентная заливка
- •Квадраты
- •Двойной щелчок
- •Текстовое поле
Звуковые файлы
Добавим к каждому элементу массива info еще одну составляющую — имя музыкального файла в формате MP3. Эти файлы, так же, как Flash-ролики для фона и рисунки, находятся в папке ЛР.
info = new Array (["Акула", "image0.jpg", "music0.mp3"], ["Медуза", "image1.jpg", "music1.mp3"], ["Конек", "image2.jpg", "music2.mp3"]);
|
При переходе на новый слайд будем останавливать предыдущий звук, создавать новый объект Sound, и загружать в него звуковой файл с помощью метода loadSound. Этот метод для объекта snd вызывается так:
snd.loadSound ( имя файла, флаг );
Второй параметр флаг — это логическое значение. Если оно равно true, загружается потоковый звук, который может проигрываться в ходе загрузки. Если задать значение false, проигрывание звука начнется только после полной загрузки.
Добавьте в конец функции newSlide строчки
snd.stop();
snd = new Sound();
snd.loadSound(info[no-1][2], true);
Теперь сделаем, чтобы ход проигрывания показывался на линейном индикаторе под рисунком. Индикатор представляет собой клип, в котором 100 кадров и для прямоугольника установлена анимация формы — его длина увеличивается от нуля до максимальной.
У звукового объекта snd есть два свойства:
snd.position — уже проигранная часть звука в миллисекундах;
snd.duration — общая длительность звука.
Их отношение дает долю проигранной части, она затем переводится в проценты и округляется. Полученное значение — это и есть номер нужного кадра клипа Индикатор.
Выделите клип-индикатор в нижней части сцены и добавьте к нему следующий код:
onClipEvent (enterFrame) {
part = _root.snd.position / _root.snd.duration;
percent = Math.round(part*100);
gotoAndStop(percent);
}
Поскольку это обработчик клипа, а не главного монтажного стола, для обращения к объекту snd нужно указывать его полный адрес.
Наконец, мы обеспечим переход к новому слайду при окончании проигрывания мелодии. Для этого установим обработчик события soundComplete, которое возникает при завершении звука.
Добавьте в конец функции newSlide код:
snd.onSoundComplete = function(){
newSlide ( slideNo + 1 );
}
Проверьте, как работает автоматический переход.
Баннеры
В левом верхнем углу сцены есть область для баннеров. В нее входят
пустой клип с именем banner,
кнопка с надписью Баннеры вкл/выкл для отключения и включения показа баннеров;
клип, который появляется при отключении баннеров.
Баннеры с именами banner0.swf, banner1.swf и banner2.swf — это Flash-ролики размером 100 на 40 пикселей, которые содержат по 36 кадров, то есть проигрываются три секунды при частоте 12 кадров в секунду.
Добавьте к кадру 1 слоя Программа следующий код:
bannerFiles = ["banner0.swf", "banner1.swf", "banner2.swf"];
newBanner();
bInt = setInterval(newBanner, 3000);
function newBanner() {
i = random(3);
loadMovie (bannerFiles[i], "banner");
}
Имена файлов предварительно записываются в массив bannerFiles. Функция newBanner случайно выбирает номер баннера и загружает его с диска в клип banner. Вызов setInterval создает таймер, который раз в 3 секунды вызывает функцию newBanner. Ссылка на этот таймер записывается в переменную bInt, мы будем использовать ее далее.
Кнопка под областью баннера служит для включения и выключения показа баннеров. При выключении прекращается периодический вызов функции newBanner (с помощью clearInterval), в переменную bInt записывается специальное значение null (это означает, что режм показа баннеров отключен) и сам баннер выгружается из клипа banner:
unloadMovie ( banner );
При включении вызывается функция newBanner и снова запускается таймер, который будет вызывать ее через каждые 3 секунды.
Ответ на вопрос «Что делать?» (включать или выключать) дает значение переменной bInt. Если оно равно null, значит баннеры сейчас отключены, если нет — баннеры показываются.
Выделите кнопку для включения баннеров и добавьте к ней обработчик сообщения release (отпускание кнопки мыши):
on (release) {
if ( bInt != null ) {
clearInterval ( bInt );
bInt = null;
unloadMovie ( banner );
} else {
newBanner();
bInt = setInterval ( newBanner, 3000 );
}
}
Сохраните файл с именем ЛР7_2.fla и проверьте работу окончательной версии.
Индивидуальное задание
Создайте Flash-приложение, позволяющее просматривать фотографии в режиме слайд-шоу.
Обеспечьте возможность присмотра фотографий с увеличением масштаба.
Разработайте собственный графический дизайн приложения.
Обеспечьте звуковое сопровождение показа слайдов.
Сохраните фильм с именем Фамилия_ИДЗ_7.fla
Лабораторная работа №8
«Использование компонентов для создания интерфейса Flash-приложения»
Сохранение данных на диске
Поскольку Flash часто применяется в Интернете, в целях безопасности программа не имеет возможности записать данные на диск. Однако данные все-таки можно сохранить, используя так называемые разделяемые объекты (shared objects). Посмотрим пример их использования. В ролике, показанном ниже, для входа в основную часть фильма нужно ввести кодовое имя и пароль. Если пользователя нет в базе, он должен сначала зареги и зайти со своим именем и паролем.
Данные запоминаются в специальном файле на диске, и при повторном запуске можно входить с введенными ранее именем и паролем. Этот файл имеет расширение *.sol и хранится в папке Documents and Setting\User, где User — это имя пользователя.
Для того, чтобы открыть файл с именем userBase.sol, нужно использовать метод SharedObject.getLocal (получить локальную ссылку):
v = SharedObject.getLocal ( "userBase" );
Теперь обращаться к объекту можно через переменную v. Все данные, которые нужно сохранить, рассматриваются как свойства поля data. Например, проверить существование переменной base можно так
if ( v.data.base != undefined )
trace ( "Нашли!" );
else trace ( "Нету..." );
Напомним, что undefined обозначает неизвестную (неопределенную) величину. В программе можно добавить новые элементы к полю data:
v.data.x = 12;
Удалить эту переменную можно с помощью оператора delete:
delete v.data.x;
Если нужно очистить все переменные, используют метод clear:
v.clear();
Разделяемый объект автоматически записывается на диск при завершении работы ролика. С помощью метода flush можно сделать это немедленно:
v.flush();
Важно помнить, что разделяемые объекты, созданные в каком-либо фильме, не могут использоваться другими фильмами, даже выполняющимися на том же компьютере.