Macromedia Flash Professional 8. Графика и анимация
Шрифт:
свойство ТСОМ — имя исполнителя;
свойство TALB — название альбома;
свойство TIT2 — название произведения;
свойство ТСОМ — жанр произведения;
свойство TYER — год выпуска альбома;
свойство TIME — продолжительность произведения;
свойство TRCK — номер произведения в альбоме.
Объект Sound поддерживает также методы getBytesLoaded и getBytesTotal,
Загрузка видео
Теперь рассмотрим процесс загрузки и воспроизведения внешних видеофайлов формата Macromedia Flash Video (другие форматы не поддерживаются). Подробно об этом формате было рассказано в главе 16.
Все находящиеся на рабочем листе экземпляры образцов-импортированных клипов, для которых было задано имя, представляют собой экземпляры объекта Video. Их создает сам Flash; нам же остается только использовать их свойства и методы.
Объект Video поддерживает метод attachVideo, выполняющий загрузку внешнего видеофайла и воспроизведение его в экземпляре образца-импортированного видео. Для загрузки и воспроизведения лучше всего использовать "пустой" видеоклип, процесс создания которого мы сейчас рассмотрим.
Итак, чтобы загрузить и воспроизвести внешний видеоклип, нужно сначала создать на рабочем листе "пустой" экземпляр объекта Video. Для этого откроем панель Library и выберем в ее дополнительном меню пункт New Video. В списке панели Library появится новый пункт с именем вида Embedded Video <порядковый номер>. Дважды щелкнем на этом имени, введем в появившееся поле ввода новое, более вразумительное имя и нажмем клавишу <Enter>. Поместим на рабочий лист экземпляр этого образца и дадим ему какое-нибудь имя, например, vidExternal. Все — "пустой" видеоклип создан.
Теперь привяжем к первому кадру анимации такой сценарий:
var nc = new NetConnection;
nc.connect(null);
var ns = new NetStream(nc);
vidExternai.attachVideo(ns);
ns.play("videos/introduction.flv");
Здесь мы используем для загрузки внешнего видеофайла экземпляры объектов NetConnection и NetScream. Подробное описание этих объектов можно найти в интерактивной справке Flash.
Загрузка Web-страниц
Напоследок мы рассмотрим используемый во Flash способ загрузки в окно Web-обозревателя какой-либо Web-страницы. Для этого предназначено действие getURL, формат вызова которого таков:
getURL ("<Интернет-адрес Web-страницы>" [, "<Цель>"]);
С первым параметром этого действия передается сам интернет-адрес загружаемой Web-страницы. Через второй, необязательный, параметр задается цель гиперссылки. Параметр цель имеет строковый тип и может принимать следующие значения:
"_blank" — Web-страница загрузится в отдельное окно Web-обозревателя;
"_parent" — Web-страница загрузится в родительский набор фреймов;
"_seif" — Web-страница загрузится в текущий фрейм (это значение параметра по умолчанию);
"_top" — Web-страница
загрузится в текущее окно Web-обозревателя, заменив собой весь набор фреймов, если он есть.Кроме того, можно передать со вторым параметром имя фрейма, в который должна быть загружена эта страница.
Вот пример сценария, привязанного к кнопке и загружающего Web-страницу сайта Macromedia в отдельное окно Web-обозревателя:
on (click) {
getURL("http://www.macromedia.com", "_blank");
}
Ограничения на доступ к внешним файлам
Интернет — небезопасное место. Вирусы, "троянские программы", мошеннические сайты — всего этого добра там более чем достаточно. И неудивительно, что создатели программ, работающих с Интернетом, встраивают в них различные средства, призванные хоть как-то обеспечить безопасность пользователя и его данных. Пусть даже ценой каких-то ограничений.
Не стал исключением и наш любимый Flash. Всеобщая озабоченность безопасностью (вполне, кстати, оправданная) отразилась и на нем. Разработчики фирмы Macromedia предусмотрели для своего детища множество ограничений на работу с внешними файлами. Рассмотрим эти ограничения.
Нужно сказать сразу, что внешние файлы во Flash можно загружать с любого интернет-адреса. Они будут нормально отображаться в окне проигрывателя Flash. Но если мы попытаемся получить доступ к экземплярам объектов, функциям или переменным, находящимся во внешнем файле, Flash сразу даст нам по рукам. Смотреть, дескать, смотрите, но руками не троньте!
Какие же внешние файлы можно "трогать руками"? Какие ограничения Flash накладывает на доступ к внешним файлам? А вот какие…
Прежде всего, файлы, которые желают "общаться" друг с другом на уровне сценариев, должны быть загружены с одного и того же Web-сервера. А именно, если они были загружены с Web-сервера, имеющего IР-адрес 192.168.1.10, то они смогут обращаться к объектам, функциям и переменным друг друга. То же самое справедливо для файлов, загруженных с сервера http://www.somesite.ru. Однако если файлы были загружены с серверов http://www.somesite.ru и http://somesite.ru, то они не смогут "общаться" друг с другом на уровне сценариев.
Еще одно ограничение связано с протоколами HTTP 4 (HyperText Transport Protocol, транспортный протокол передачи гипертекста) и HTTPS5 (HyperText Transport Protocol Secured, защищенный транспортный протокол передачи гипертекста). (Протокол — это набор правил, согласно которым программы обмениваются данными по сети.) Если основной фильм был загружен по протоколу HTTP, а внешний — по протоколу HTTPS (или наоборот), то они не смогут получить доступ друг к другу через сценарии.
В предыдущей версии Flash (MX) описанные ограничения были непреодолимыми. Во Flash MX 2004 появилась возможность их преодолеть. Сейчас мы выясним, как это делается.
Пусть мы загрузили основной фильм с сервера http://www.somesite.ru. И пусть нам понадобилось загрузить с сервера http://somesite.ru внешний файл car.swf, поместить его на рабочий лист, а впоследствии иметь к нему доступ через сценарии. Для этого нам нужно будет использовать метод allowDomain объекта security, находящегося в объекте System. Формат его вызова таков: