Работа флэш-программ в Internet
Рассмотрим еще один способ настройки флэш-ролика извне.
Этот способ немного похож на использование ini-файлов, но имеет совершенно другую природу.
Заключается он в использовании возможности передачи параметров встраиваемому объекту (plugin или ActiveX) из HTML -кода, создающего plugin- или ActiveX- объект (затем эти переменные будут доступны как переменные _level0 ).
Существует два синтаксиса передачи параметров флэш-ролику:
- Запись параметров в url-формате ( param=value¶m=value ) в параметре movie тегов и через ‘ ?’. Например:
Рекомендуем использовать оба способа одновременно, если ваши флэш-ролики предполагается проигрывать на флэш-плеерах версий 5.0 и более старых. В остальных случаях используйте второй способ.
Отметим, что передачей параметров флэш-ролику из HTML зачастую пользоваться удобнее, чем ini-файлами, потому что не возникает проблем с асинхронностью: сразу после загрузки ролика все параметры доступны как переменные _level0 .
Взаимодействие с браузером
В предыдущем параграфе мы рассмотрели самый простой вид взаимодействия браузера и флэш-плеера: передачу параметров из первого последнему.
Но это далеко не единственный тип взаимодействия, который можно использовать. Вы можете управлять роликом (например, запускать и останавливать ролик, получать и устанавливать значения переменных ролика) из JavaScript (или VBScript), и наоборот — вызывать функции JavaScript или VBScript из флэш-ролика.
Рассмотрим данные механизмы более подробно.
Управление роликом из JavaScript
Синтаксис JavaScript -команды, обращающейся к ролику, таков:
movie.methodName (parameters);
Здесь movie — ссылка на plugin — или ActiveX -объект флэш-плеера, то есть window.document. , где — это параметр ID для тега OBJECT и параметр NAME для тега EMBED , methodName — имя одного из методов plugin — или ActiveX -объекта флэш-плеера (далее будем называть их флэш-методами, о них см. далее).
Получение значения переменной: GetVariable(varName)
var radioButtonValue = movie.GetVariable("/Form/RadioButton:Value");
Установка значений переменной:
SetVariable(variableName, value)
movie.SetVariable("textField.variableName, text", "someText");
Остановка проигрывания: StopPlay()
Перевод ролика на нужный кадр: GotoFrame(frameNumber)
Выполнение кода из кадра клипа. Можно использовать для вызова метода, если поместить вызов метода в этот кадр.
TCallFrame(object, frameNumber)
movie.TCallFrame("myMovieClip", 10);
Вызов методов JavaScript и VBScript из флэш-ролика
Рассмотрим теперь, как можно добиться обратного эффекта — вызвать функцию JavaScript или VBScript из флэш-ролика.
Для всех внешних вызовов из флэш-ролика предназначен метод fscommand (другие его применения мы рассмотрим в следующем параграфе).
Синтаксис инструкции fscommand :
fscommand (command, arguments);
Если флэш-ролик выполняется в браузере, то этот метод приводит к вызову одной из функций: VBScript-функции _FSCommand (эта функция, например, вызывается в Internet Explorer для Windows) или JavaScript -функции _DoFSCommand (эта функция, например, вызывается в Netscape). Так все хитро устроено внутри браузеров, а точнее, внутри подключаемых ( plug-in ) модулей или объектов ActiveX, которые выполняют функции флэш-плееров в браузерах — именно плеер вызывает у браузера одну из вышеуказанных функций.
Какая бы из этих двух функций ни была вызвана, ей в качестве первого аргумента передается сommand , а в качестве второго — arguments (это два параметра, указаннные при вызове fscommand ).
Давайте разберемся, как этим пользоваться. Скорее всего, вы хотите добиться одинакового поведения во всех браузерах. Тогда нужно сделать, чтобы в любом случае вызывалась одна функция. Для этого просто продублируем входной интерфейс. Вот как, например, это можно сделать:
Есть и другой вариант, не связанный с помещением нужного вам JavaScript или VBScript-кода в html-документ. Вы можете просто воспользоваться инструкцией getURL , а в качестве адреса передать строчку наподобие » javascript: alert(‘Text of Alert’) «. Собственно говоря, после префикса javascript : может идти довольно большое количество операторов (разделенных двоеточиями, разумеется). Правда, отладка ролика, содержащего подобный вызов во встроенном редакторе будет неудобна — все время будет запускаться браузер для того, чтобы выполнить заданную команду. Использование fscommand не имеет такого побочного эффекта.
Следует заметить, что описанные выше взаимодействия флэш-ролика с браузером через JavaScript работают не на всех платформах (в частности, они не работают в Internet Explorer под MacOS, а также в Mozilla). Это может быть очень неудобно, например, когда нужно организовать взаимодействие двух флэш-роликов, флэш-роликов и апплетов и пр. В таких случаях можно рассматривать альтернативные варианты:
- LocalConnection (если речь идет о взаимодействии двух флэш-роликов)
- Организация коммуникаций через веб-сервер;
- Перезагрузка флэш-роликов в отдельных фреймах из JavaScript с передачей им нужных параметров (теги и полностью генерируется с помощью JavaScript ;
Первый и второй варианты мы отчасти рассмотрим далее в этой лекции.
Другие применения fscommand
С помощью fscommand можно не только вызывать методы JavaScript , как мы уже говорили. Например, с ее помощью можно командовать консольным плеером. То же самое справедливо для ролика, выполняемого как projector (опубликованного в exe-файл, внутрь которого встроен плеер).
В результате пропадет линейка меню плеера, а контекстное меню будет сильно уменьшено.
Можно также запустить какое-либо приложение Windows.
Как нетрудно догадаться, эта команда запустит калькулятор Windows. Впрочем, настройки безопасности системы могут не позволить такого сделать (не говоря уже о том, что из браузера ничего подобного устроить нельзя).
Наконец, если вы работаете не только с Macromedia Flash MX, но и с Macromedia Director (в фильмы которого можно встраивать флэш-ролики), то fscommand может применяться для того, чтобы отдавать команды Shockwave-плееру (проигрывающему фильмы Macromedia Director) на языке Lingo . За подробностями вам следует обратиться к документации по системе Macromedia Director.
Flash in HTML
After creating a Flash movie you choose File > Save As from the top menu to save your movie. Save the file as «Somefilename.fla».
To embed the Flash movie you just made into an HTML page, you should go back to your Flash program and do the following steps:
Step 1
Choose File > Open. Open a Flash movie you have created.
Step 2
Choose File > Export Movie.
Step 3
Name the file «somefilename.swf». Choose the location where the file is to be stored (in your Web folder). Click OK.
Step 4
Open the HTML page where you want to insert your Flash movie. Insert this code:
Note: This is the minimum code you need to embed a Flash movie in a browser. A broken icon will appear on the Web page if the user does not have the Flash plug-in installed.
Note: In the code above there is both an tag and an tag. This is because the tag is recognized by Internet Explorer, and Netscape recognizes the tag and ignores the tag.
Step 5
Type in the address of the HTML file in your browser and look at your first Flash movie.
Let the Flash Program do the Work
The code above is the absolute minimum code to embed Flash movies in HTML pages. It is not recommended to use the minimum code. There should be a few more attributes added:
- classid is an attribute to the tag. It tells Internet Explorer to load the ActiveX plug-in if it is not installed
- pluginspage is an attribute to the tag. It displays a link to the Shockwave download page if Netscape does not have it
The Flash program can add these attributes for you:
Step 1
Choose File > Publish. Flash will now create the , , and tags for you. It will also create the classid and pluginspage attributes.
Step 2
Open the HTML document that Flash created, view the HTML source and copy the code into your HTML page where you want your Flash movie.
Step 3
Be sure that you have the «somefilename.swf» in your Web folder.
Step 4
Type in the address of the HTML file in your browser and look at your first Flash movie.
Get Your Diploma!
W3Schools’ Online Certification Program is the perfect solution for busy professionals who need to balance work, family, and career building.
The HTML Certificate is for developers who want to document their knowledge of HTML, XHTML, and CSS.
The JavaScript Certificate is for developers who want to document their knowledge of JavaScript and the HTML DOM.
The XML Certificate is for developers who want to document their knowledge of XML, XML DOM and XSLT.
The ASP Certificate is for developers who want to document their knowledge of ASP, SQL, and ADO.
The PHP Certificate is for developers who want to document their knowledge of PHP and SQL (MySQL).
W3Schools is for training only. We do not warrant the correctness of its content. The risk from using it lies entirely with the user.
While using this site, you agree to have read and accepted our terms of use and privacy policy.
Copyright 1999-2009 by Refsnes Data. All Rights Reserved.