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

Звуковые файлы

Добавим к каждому элементу массива info еще одну составляющую — имя музыкального файла в формате MP3. Эти файлы, так же, как Flash-ролики для фона и рисунки, находятся в папке ЛР.

  1. Добавьте название музыкального файла в каждый элемент массива info:

info = new Array (["Акула", "image0.jpg", "music0.mp3"],

["Медуза", "image1.jpg", "music1.mp3"],

["Конек", "image2.jpg", "music2.mp3"]);

При переходе на новый слайд будем останавливать предыдущий звук, создавать новый объект Sound, и загружать в него звуковой файл с помощью метода loadSound. Этот метод для объекта snd вызывается так:

snd.loadSound ( имя файла, флаг );

Второй параметр флаг — это логическое значение. Если оно равно true, загружается потоковый звук, который может проигрываться в ходе загрузки. Если задать значение false, проигрывание звука начнется только после полной загрузки.

  1. Добавьте в конец функции newSlide строчки

snd.stop();

snd = new Sound();

snd.loadSound(info[no-1][2], true);

Теперь сделаем, чтобы ход проигрывания показывался на линейном индикаторе под рисунком. Индикатор представляет собой клип, в котором 100 кадров и для прямоугольника установлена анимация формы — его длина увеличивается от нуля до максимальной.

У звукового объекта snd есть два свойства:

  • snd.position — уже проигранная часть звука в миллисекундах;

  • snd.duration — общая длительность звука.

Их отношение дает долю проигранной части, она затем переводится в проценты и округляется. Полученное значение — это и есть номер нужного кадра клипа Индикатор.

  1. Выделите клип-индикатор в нижней части сцены и добавьте к нему следующий код:

onClipEvent (enterFrame) {

part = _root.snd.position / _root.snd.duration;

percent = Math.round(part*100);

gotoAndStop(percent);

}

Поскольку это обработчик клипа, а не главного монтажного стола, для обращения к объекту snd нужно указывать его полный адрес.

Наконец, мы обеспечим переход к новому слайду при окончании проигрывания мелодии. Для этого установим обработчик события soundComplete, которое возникает при завершении звука.

  1. Добавьте в конец функции newSlide код:

snd.onSoundComplete = function(){

newSlide ( slideNo + 1 );

}

  1. Проверьте, как работает автоматический переход.

Баннеры

В левом верхнем углу сцены есть область для баннеров. В нее входят

  • пустой клип с именем banner,

  • кнопка с надписью Баннеры вкл/выкл для отключения и включения показа баннеров;

  • клип, который появляется при отключении баннеров.

Баннеры с именами banner0.swf, banner1.swf и banner2.swf — это Flash-ролики размером 100 на 40 пикселей, которые содержат по 36 кадров, то есть проигрываются три секунды при частоте 12 кадров в секунду.

  1. Добавьте к кадру 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, значит баннеры сейчас отключены, если нет — баннеры показываются.

  1. Выделите кнопку для включения баннеров и добавьте к ней обработчик сообщения release (отпускание кнопки мыши):

on (release) {

if ( bInt != null ) {

clearInterval ( bInt );

bInt = null;

unloadMovie ( banner );

} else {

newBanner();

bInt = setInterval ( newBanner, 3000 );

}

}

  1. Сохраните файл с именем ЛР7_2.fla и проверьте работу окончательной версии.

  • Индивидуальное задание

Создайте Flash-приложение, позволяющее просматривать фотографии в режиме слайд-шоу.

  1. Обеспечьте возможность присмотра фотографий с увеличением масштаба.

  2. Разработайте собственный графический дизайн приложения.

  3. Обеспечьте звуковое сопровождение показа слайдов.

Сохраните фильм с именем Фамилия_ИДЗ_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();

Важно помнить, что разделяемые объекты, созданные в каком-либо фильме, не могут использоваться другими фильмами, даже выполняющимися на том же компьютере.

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