Книга: Справочник по Flash
loadVariables - Загружает в клип или фильм внешние переменные
loadVariables - Загружает в клип или фильм внешние переменные
loadVariables
(Глобальная функция)
Загружает в клип или фильм внешние переменные
Синтаксис:
loadVariables (url, target); loadVariables (url, target, method);
Аргументы:
Обычно переменные внутри фильмов определяются при помощи ActionScript. Однако посредством loadVariables() можно также импортировать в клип переменные из текстового файла или выполняемого на сервере приложения - например, сценария PHP. Областью видимости для переменных, загружаемых через loadVariables(), является клип или уровень, указанные в target, а типом данных всегда является string. Для прикрепления загруженных переменных к текущей временной диаграмме нужно использовать в качестве значения аргумента target пустую строку.
Примеры:
Пример: Прикрепление переменных к текущей временной диаграмме.
loadariables("myVars.txt", "");// Загружаем переменные из myVars.txt// в текущую временную диаграмму
Вне зависимости от того, будут ли загружаемые переменные находиться в текстовом файле, или из создает сценарий, они должны иметь формат, соответствующий кодировке URL:
Следующий пример покажет содержимое текстового файла, импортируемого во Flash посредством loadVariables().
Пример: Импортирование из файла переменных name и address.
name=Jon&address=65+malkom+st%21// name присваивается значение "Jon"// address присваивается значение "65 malkom st!"
Текстовой файл, который используется в loadVariables(), является обычным текстовым файлом, содержащим переменные в кодировке URL, как показано выше. Для загрузки переменных из внешнего текстового файла путь к файлу указывается как аргумент URL в вызове функции loadVariables().
Пример: Загрузка переменных в главную временную диаграмму.
// Загрузить переменные из myVar.txt// в главную временную диаграмму фильмаloadVariables("myVar.txt", "_root");
loadVariables() также можно использовать со сценарием или приложением сервера, выводящим переменные в кодировке URL. Когда сценарий посылает переменные в фильм Flash в ответ на вызов функции loadVariables(), он должен задать MIME-тип данных как "application/x-www-urlform-encoded".
На равне с приемом переменных, функция loadVariables() также может передавать переменные в сценарий на стороне сервера. Чтобы отправить в сценарий все переменные, определенные в текущей временной диаграмме, аргумент method при вызове функции loadVariables() задается равным "GET" или "POST". Переменные пересылаются в формате кодировки URL.
Если method задан как "GET", переменные передаются как строка запроса в URL сценария.
Если method установлен как "POST", переменные посылаются после заголовка HTTP POST.
Т.к. для большинства веб-серверов максимальная длина URL лежит между 255 и 1024 символами, при передаче больших объемов данных используйте "POST", а не "GET".
Из соображений безопасности loadVariables() действует только с хостами домена, из которого был загружен фильм. Правила, которым подчиняется loadVariables(), перечислены в следующей таблице.
Эти меры безопасности оказывают воздействие только на подключаемые модули и на элементы ActiveX браузера Flash Player; автономный проигрыватель может загружать переменные из любого домена.
Ограничения на домены являются умышленной защитной функцией во Flash, но их можно обойти с помощью прокси-сценария, выполняемого на сайте X, действующего как посредник между Flash и сайтом Y, или псевдонима DNS на сайте X, который указывает на сайт Y. Дополнительную информацию по данному вопросу можно получить по адресу: http://www.macromedia.com/support/flash/ts/documents/loadvars_security.htm.
Результаты многократных обращений loadVariables() по одному и тому же URL сценария могут некоторыми браузерами кэшироваться, в результате чего новые данные с сервера не загружаются. Чтобы избежать этой проблемы, добавляйте в каждый вызов loadVariables() фиктивную переменную, чтобы URL оказался уникальным.
Пример: Генерация уникального URL.
loadVariables("http://www.mysite.ru/myScript.php?var=" + getTimer(), serverResponse);
Использование обработчика события data с функцией loadVariables().
Если у сервера запрашивается ряд переменных с помощью функции loadVariables(), необходимо дождаться их полной загрузки, прежде чем использовать содержащиеся в них данные.
Когда клип получает всю группу загружаемых переменных, генерируется событие data, которое указывает, что можно выполнять код, зависящий от этих переменных.
Допустим, например, что имеется фильм гостевой книги, в которую пользователи вводят свои комментарии, а эти комментарии сохраняются на сервере. Если пользователь хочет просмотреть комментарий, тот запрашивается с сервера с помощью loadVariables(). Но прежде чем начать вывод комментария, необходимо сделать остановку на экране загрузки, пока не станет известно, что запрошенные данные доступны. Обработчик события data извещает о том, что данные загружены, после чего можно вывести комментарий пользователю.
В нижеприведенном примере приведен отрывок кода гостевой книги, показывающий использование обработчика события data с функцией loadVariables(). В этом примере есть кнопка, с помощью которой две переменные в кодировке URL загружаются из текстового файла в клип. В клипе имеется обработчик события data, который выполняется, когда эти две переменные загружены. Обработчик отображает значения этих двух переменных. Безопасность вывода этих двух переменных гарантируется тем, что код обработчика выполняется только при генерации события data (т.е. после получения данных).
Пример: Ожидание события data.
// Содержимое файла guest.txtname=Jon&message=hello// Кнопка внутри клипаon (release) { this.loadVariables("guest.txt");}// Обработчик в клипеonClipEvent (data) { trace(name); trace(message);}
Ошибки в реализации:
Метод POST не поддерживается в Internet Explorer 4.5 для Macintosh. Эта проблема была исправлена в версии 5 браузера.
Совместимость:
Используется с 4-ой версии Flash
- break - Прекращает выполнение цикла
- call - Выполнить сценарий удаленного клипа
- comment - Вставить комментарии
- continue - Заново начинает текущий цикл
- delete - Удаление объекта, элемента массива или переменной
- duplicateMovieClip - Создать копию клипа
- evaluate - Создает новую пустую строку, и вставляет ;
- for - Многократно выполняет некоторый код
- for...in - Цикл, используемый для перечисления свойств объекта
- fscommand - Передача данных браузеру
- function - Создает новую функцию
- getURL - Переход на веб-страницу
- if - Выполнение или не выполнение предложений в зависимости от условий
- ifFrameLoaded - Выполняет код если загруженн определенный кадр
- include - Импорт текста из внешнего файла ActionScript
- loadMovie - Загрузить файл .swf
- loadMovieNum - Загрузить файл .swf
- loadVariables - Загружает в клип или фильм внешние переменные
- loadVariablesNum - Прикрепляет группу внешних переменных к уровню документа
- print - Вывод на печать кадров фильма или клипа с использованием векторной графики
- printNum - Печать кадров уровня документа как векторных изображений
- printAsBitmap - Вывод на печать кадров фильма или клипа с использованием растровой графики
- printAsBitmapNum - Печать кадров уровня документа как растровых изображений
- removeMovieClip - Удалить клип фильма из Flash Player
- return - Выходит из функции или возвращает ее значение
- setProperty - Присвоить значение свойству клипа фильма
- startDrag - Заставляет фильм или клип следовать за курсором мыши
- Stop - Остановить воспроизведение фильма на текущем кадре
- stopAllSounds - Выключить все звуки
- stopDrag - Останавливает текущую операцию перетаскивания
- tellTarget - Обратиться к удаленному клипу
- toggleHighQuality - Изменение качества
- unloadMovie - Удалить фильм или клип из проигрывателя
- unloadMovieNum - Удалить фильм из проигрывателя
- var - Объявление локальной переменной
- while - Многократно выполняет некоторый код
- with - Выполняет некоторый код в конце указанного объекта
- Системные переменные ROWS_AFFECTED, GDSCODE, SQLCODE, TRANSACTIONJD, CONNECTIONJD
- 1.2.3. Константы, переменные и типы
- Внешние носители информации
- Как послушать музыку и посмотреть фильм?
- При запуске Internet Explorer загружается какая-то непонятная страница. Как ее отключить?
- После подключения второго жесткого диска Windows не загружается. Что делать?
- Компьютер сам перезагружается. Что делать?
- Можно ли сделать командную строку цветной (как в фильме «Матрица»)?
- Система сообщает, что на жестком диске мало свободного места. Чтобы освободить жесткий диск, я удалил фильм на 4 Гбайт. ...
- На DVD с фильмами имеются файлы с расширениями VOB и IFO. Какие из них содержат меню диска и можно ли его как-нибудь изм...
- С помощью какой программы лучше всего записывать фильмы на компакт-диски?
- При просмотре новых фильмов звук есть, а изображения нет. Что делать?