Зачем может понадобиться перекрытие фильмов? А, например, для создания Web-сайтов, основанных на Flash. В этом случае сначала загружается и выводится на экран "объединяющий" фильм, содержащий заголовок сайта, полосу навигации и какой-то изначальный текст. При щелчке на какой-либо кнопке полосы навигации особый сценарий загружает фильм с соответствующим содержимым и выводит его на экран как перекрывающийся клип, перекрывая изначальное содержимое. Схема достаточно простая и наглядная; удивительно только, почему таких сайтов все еще довольно мало.
В главе 4 , описывающей трансформации, давалось понятие порядка перекрытия фрагментов графики друг относительно друга (его еще называют z-координатой). В случае с перекрывающимися фильмами используется примерно такое же понятие, только называемое по-другому, а именно — уровень фильма. Отсчет уровней ведется, начиная с самого нижнего клипа (фильма) до самого верхнего. Фильмы с б о льшим номером уровня находятся "выше" фильмов с меньшим номером и перекрывают их.
На этом сходство с порядком перекрытия исчерпывается, и начинаются отличия. Их три.
Во-первых, самым "нижним" всегда является фильм, изначально воспроизводящийся в проигрывателе Flash, — он имеет уровень 0. Все остальные фильмы, которые будут загружены как перекрывающиеся, находятся "выше" него, т. е. имеют более высокий уровень — 1, 2 и т. д.
Во-вторых, для обозначения уровня фильма используются не числа, а особые модификаторы, в состав которых входят номера уровней. Они возвращают ссылку на внешнюю анимацию соответствующего фильма и имеют вид _level <номер уровня>. Самый "нижний" фильм имеет модификатор _level0 . Более "высокие" фильмы имеют модификаторы _level1, _level2 и т. д.
Мы можем использовать эти модификаторы для доступа к перекрывающимся фильмам. Например:
_level0.gotoAndPlay(1);
_levell.car.wheel.stop();
Внимание!
Перед тем как обратиться к перекрывающемуся фильму, находящемуся на каком-то уровне, нужно сначала его туда загрузить. Как это сделать, будет рассказано чуть позже.
В-третьих, мы можем загрузить какой-либо фильм на уровень, на котором уже имеется другой фильм. В этом случае загружаемый фильм заменит тот, что раньше был на этом уровне. Можно загрузить какой-либо фильм и на уровень 0 — в этом случае он заменит фильм, изначально загруженный в проигрыватель Flash.
Для загрузки перекрывающегося фильма используется действие loadMovieNum , аналогичное действию loadMovie . Формат его вызова таков:
loadMovieNum ("<���Интернет-адрес загружаемого файла>", <���Уровень >);
Приведем два примера выражений, использующих действие loadMovieNum :
loadMovieNum("/videos/driving.swf", 0);
loadMovieNum("/images/ads/banner45.jpg", 2);
Первое выражение заменяет основной фильм фильмом driving.swf. Второе же выражение загружает рекламный баннер и помещает его над основным фильмом. (Непонятно, правда, зачем это нужно делать. Если только для испытания нервов зрителей.)
Для выгрузки перекрывающегося фильма используется действие unloadMovieClip . Вот формат его вызова:
unloadMovieNum (<���Уровень выгружаемого клипа или изображения >);
Пример:
unloadMovieNum(_level2);
Это выражение убирает назойливо маячивший перед глазами рекламный баннер.
Для загрузки звука из внешнего файла в формате MP3 (другие форматы не поддерживаются) следует воспользоваться методом loadSound объекта Sound . Вот формат его вызова:
<���Звук>. loadSound (<���Интернет-адрес или путь внешнего звукового файла>,<���Потоковый звук>);
Первый параметр задает интернет-адрес звукового файла или его путь на локальном диске компьютера в строковом виде. Второй параметр — логический — задает, будет ли загружаемый звук потоковым (значение true ) или звуком-сигналом (значение false ). (О потоковых звуках и сигналах см. главу 17. )
Вот пример сценария, загружающего звуковой файл с использованием метода loadSound :
newSound = new Sound();
newSound.loadSound("sounds/background_music.mp3", true);
newSound.play();
Объект Sound поддерживает событие onLoad , возникающее по окончании загрузки звука. Это событие можно обработать с помощью функции-обработчика, принимающей единственный параметр. Если звук был успешно загружен, этот параметр примет логическое значение true. Соответственно, если проигрыватель Flash почему-то не смог загрузить этот звук, обработчику передается значение false.
Читать дальше
Конец ознакомительного отрывка
Купить книгу