В результате Flash отправит Web-cepeepy следующий адрес (сами данные в нем выделены полужирным шрифтом):
http://www.site.ru/bin/program.exe? name1=Ivan&&name2=Ivanov&password=vanyusha
Как видим, пересылаемые способом
Получив этот запрос, Web-cepeep первым делом отделит отправленные данные от собственно интернет-адреса серверной программы (в нашем случае это program.exe). Далее он запустит саму эту программу (если она еще не запущена) и передаст ей данные.
Второй способ носит название
Чтобы реализовать способ
_root.loadMovie('http://www.site.ru/bin/getswf.exe', 'POST');
Это выражение выполнит отправку данных способом post. В результате его выполнения серверная программа вернет файл Shockwave/Flash, содержащий клип, который заменит в окне проигрывателя Flash основной фильм.
Все эти методы и действия хороши, пока нам не понадобится получить от серверной программы результат обработки переданных нами данных. В этом случае нам придется воспользоваться другими действиями и методами, которые будут описаны ниже.
Получение данных от серверной программы
Самый простой способ передать серверной программе данные и сразу же получить от нее результат их обработки — использовать действие
Нужно сразу сказать, что серверная программа должна отправить данные, полученные в результате обработки, в виде строки, содержащей набор пар
Получив от серверной программы данные, действие (метод)
Формат вызова действия
loadVariabies
С первым параметром передается интернет-адрес серверной программы, которая должна получить данные и отправить результат, или текстового файла, содержащего их. Со вторым параметром передается путь клипа, который должен принять и обработать эти данные. Третий, необязательный, параметр используется для задания способа передачи отправляемых данных.
Примеры использования действия
loadVariabies('http://site.ru/bin/program.pi', _root.dataHandler,'POST');
loadVariabies('data.txt', _root.dataHandler);
Оба эти выражения загружают полученные данные в клип
Метод
Например:
_root.dataHandler.loadvariabies('http://site.ru/bin/program.pi', 'POST');
Для загрузки данных в перекрывающийся фильм используется действие l
loadvariabies
Комментарии, как говорится, излишни.
Вроде бы, все просто — выполняем действие или метод, получаем данные и обрабатываем их в своем приложении. Просто, да не совсем. Давайте рассмотрим небольшой сценарий, принимающий от серверной программы значение переменной
_root.loadVariables('http://site.ru/bin/program.exe');
_root.gotoAndStop(frameNumber);
Будет ли работать этот код? Может, будет, а может, и нет. И вот почему…
Когда мы даем приложению Flash команду получить данные от серверной программы или из текстового файла, мы не можем быть уверены в том, что эти данные будут получены сию же секунду. Более того, вообще нельзя быть уверенным, что Flash сможет получить их в течение какого-то строго определенного промежутка времени. Это может произойти как через долю секунды, так и через час