Загрузка и выгрузка фильмов Shockwave/Flash и изображений в формате JPEG
Загрузка и выгрузка фильмов Shockwave/Flash и изображений в формате JPEG
Проще всего загрузить в основной фильм, воспроизводящийся в окне проигрывателя Flash, другой фильм Shockwave/Flash или изображение в формате JPEG из внешнего файла (загружаемого фильма). Такое часто делается, особенно при создании Web-сайтов, целиком основанных на Flash.
Вложение загружаемого фильма или изображения в основной фильм
Проще всего создать на рабочем листе "пустой" клип (например, с помощью метода createEmptyMovieClip, описанного ранее в этой главе) и заменить его загружаемым фильмом. При этом загружаемый фильм вкладывается в основной, становясь его составной частью.
Для загрузки фильма Shockwave/Flash или изображения JPEG из внешнего файла используется действие loadMovie, которое вызывается так:
loadMovie("<Интернет-адрес внешнего файла>",
<Путь заменяемого клипа>);
Примеры использования действия loadMovie:
loadMovie("/images/truckWheel.swf", _root.car.wheel2);
loadMovie(sURL, _root.car);
Также можно воспользоваться методом loadMovie объекта movieClip. Формат его вызова почти такой же, как у одноименного действия:
<Заменяемый клип>.loadMovie("<Интернет-адрес внешнего файла>");
Пример использования этого метода:
_root.car.wheel2.loadMovie("/images/truckWheel.swf");
Здесь мы загружаем фильм truckWheel.swf и заменяем им второе колесо нашего автомобиля.
А теперь предположим, что фильм truckWheel.swf из вышеприведенного примера содержит в себе сценарий:
_root.stop();
останавливающий воспроизведение его анимации (вращение колеса). Если открыть этот фильм в проигрывателе Flash, то сценарий выполнится правильно. Но если загрузить фильм truckWheel.swf в другой (основной) фильм, как мы это только что сделали, этот сценарий остановит анимацию не колеса автомобиля, а основного фильма. Ведь модификатор _root всегда возвращает ссылку на внешнюю анимацию, и в нашем случае он вернет ссылку на основной фильм, поскольку фильм truckWheel.swf стал его составной частью.
Что делать? Как нам заставить этот сценарий вложенного фильма выполняться корректно в любом случае? Очень просто: нужно привязать к первому кадру фильма truckWheel.swf вот такой совсем небольшой сценарий:
this._lockroot = true;
Здесь мы присвоили свойству _lockroot объекта movieClip, обозначающего сам фильм, значение true. После этого модификатор _root в любом сценарии, содержащемся в загружаемом фильме, всегда будет возвращать ссылку на внешнюю анимацию именно этого фильма — truckWheel.swf, даже если мы вложим его в другой фильм.
После того как нужда в загруженном из внешнего файла фильме или изображении пропадет, самое время его выгрузить. Зачем это нужно? Хотя бы затем, чтобы освободить ресурсы компьютера пользователя для других, более важных задач. Именно для этого язык ActionScript предоставляет действие unloadMovie, выгружающее из памяти и удаляющее с экрана ранее загруженный фильм. Формат вызова этого действия такой:
unloadMovie(<Путь выгружаемого клипа или изображения>);
Пример:
unloadMovie(_root.car.engine);
В этом выражении мы избавляемся от двигателя нашего автомобиля — зачем он нужен, раз автомобиль все равно не двигается с места.
А вот это выражение выгрузит сам основной фильм:
unloadMovie(_level0._root);
после чего проигрыватель Flash, оставшись не у дел, автоматически завершит свою работу.
Перекрывающиеся фильмы
Только что мы выяснили, как вложить загружаемый фильм в основной. Но Flash предоставляет также возможность наложить содержимое внешнего файла на содержимое основного фильма так, чтобы они перекрывали друг друга, полностью или частично. В таком случае эти фильмы не вкладываются друг в друга (подобно вложенным клипам), а остаются полностью независимыми. Такие фильмы называются перекрывающимися, а само это явление — перекрытием фильмов.
Зачем может понадобиться перекрытие фильмов? А, например, для создания 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);
Это выражение убирает назойливо маячивший перед глазами рекламный баннер.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
9.1.2 Выгрузка процессов
9.1.2 Выгрузка процессов Ядро выгружает процесс, если испытывает потребность в свободной памяти, которая может возникнуть в следующих случаях:1. Произведено обращение к системной функции fork, которая должна выделить место в памяти для процесса-потомка.2. Произведено
9.1.2.1 Выгрузка при выполнении системной функции fork
9.1.2.1 Выгрузка при выполнении системной функции fork В описании системной функции fork (раздел 7.1) предполагалось, что процесс-родитель получил в свое распоряжение память, достаточную для создания контекста потомка. Если это условие не выполняется, ядро выгружает процесс из
9.1.2.2 Выгрузка с расширением
9.1.2.2 Выгрузка с расширением Если процесс испытывает потребность в дополнительной физической памяти, либо в результате расширения стека, либо в результате запуска функции brk, и если эта потребность превышает доступные резервы памяти, ядро выполняет операцию выгрузки
Выгрузка библиотек при выходе из программы
Выгрузка библиотек при выходе из программы По умолчанию система при завершении работы программы оставляет в памяти ее библиотеки на случай, если через некоторое время она снова будет запущена. С одной стороны, плюс этого метода очевиден — следующий запуск будет
JPEG Repair (Починка JPEG)
JPEG Repair (Починка JPEG) Одна из причин возникновения шумов на изображении – артефакты, появляющиеся в результате сжатия файла популярным алгоритмом JPEG. Чем выше степень сжатия и ниже разрешение картинки, тем более заметным будет шум, особенно вокруг контуров объектов.Фильтр
Загрузка и выгрузка файлов посредством FTP
Загрузка и выгрузка файлов посредством FTP Поговорим о том, как можно выгрузить свои файлы на удаленный сервер Интернета, чтобы их потом могли загружать другие, а также рассмотрим еще один способ загрузки файлов на свой компьютер, не связанный с использованием браузеров и
Программная выгрузка доменов приложения
Программная выгрузка доменов приложения Важно понимать, что среда CLR не позволяет выгружать отдельные компоновочные блоки .NET. Однако, используя метод AppDomain.Unload(), вы можете избирательно выгрузить домен приложения из объемлющего процесса. При этом домен приложения
2.3.6. Динамическая загрузка и выгрузка
2.3.6. Динамическая загрузка и выгрузка Иногда на этапе выполнения программы требуется загрузить некоторый код без явной компоновки. Рассмотрим приложение, поддерживающее подключаемые модули: Web-броузер. Архитектура броузера позволяет сторонним разработчикам создавать
Автоматическая выгрузка DLL-файлов
Автоматическая выгрузка DLL-файлов С помощью реестра можно включить автоматическую выгрузку DLL-файлов. Ее целесообразность обусловлена тем, что интервал времени, через который оболочка Windows выгружает неиспользуемые DLL-файлы, может быть достаточно большим (например, при
17.11. Устранение JPEG-дефектов
17.11. Устранение JPEG-дефектов Начиная с момента появления первых графических форматов программисты ищут способ, как записать в файл максимальное количество информации об изображении при минимально возможном размере файла. В качестве решения данной проблемы применяются
Программа JPEG Recovery Pro
Программа JPEG Recovery Pro Если приложения пакета от Recoveronix работают почти в автоматическом режиме, то программа JPEG Recovery Pro сочетает в себе функции автоматического восстановления формата файлов JPEG с возможностью редактирования восстановленных данных. Дистрибутив программы JPEG
Flash 8 и Flash 8 Professional
Flash 8 и Flash 8 Professional Flash 8, как и предыдущая версия этой программы, распространяется в двух разных комплектах поставки: обычная (Flash 8) и профессиональная (Flash 8 Professional). Профессиональная версия включает больше возможностей, но и стоит дороже.Вот что включает в себя Flash 8 Professional:?
Формат Shockwave/Flash
Формат Shockwave/Flash Как мы уже выяснили, векторный формат Shockwave/Flash разработан фирмой Macromedia для распространения изображений и фильмов, созданных в пакете Flash. Настало время поговорить о нем. На заметку В этом же самом формате сохраняется распространяемая графика и анимация,
Вкладка JPEG
Вкладка JPEG Если на вкладке Formats диалогового окна Publish Settings был включен флажок JPEG (.jpg), становится доступной вкладка JPEG (рис. 21.6). Группа Dimensions из полей ввода Width и Height служит для задания соответственно ширины и высоты результирующего изображения в пикселах.Если включен