Книга: Справочник по 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

Оглавление книги

Оглавление статьи/книги
Похожие страницы

Генерация: 0.047. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз