Получение данных от серверной программы
Получение данных от серверной программы
Самый простой способ передать серверной программе данные и сразу же получить от нее результат их обработки — использовать действие loadVariabies или одноименный метод объекта movieClip. Это действие (метод) отправляет данные серверной программе и сразу же начинает ожидать получения результата. В принципе, с его помощью мы можем заставить приложение Flash загружать данные из текстового файла, находящегося на сервере или даже на диске нашего собственного компьютера.
Нужно сразу сказать, что серверная программа должна отправить данные, полученные в результате обработки, в виде строки, содержащей набор пар "переменная" = "значение", отделенных друг от друга знаком & (так же кодируются данные, передаваемые способом GET). Только тогда действие (метод) loadVariabies сможет правильно их обработать.
Получив от серверной программы данные, действие (метод) loadVariabies создает в указанном нами клипе соответствующие переменные, если они еще не созданы, и присваивает им принятые значения.
Формат вызова действия loadVariabies таков:
loadVariabies("Интернет-адрес серверной программы",
Путь клипа, получающего данные"[, "GET|POST"]);
С первым параметром передается интернет-адрес серверной программы, которая должна получить данные и отправить результат, или текстового файла, содержащего их. Со вторым параметром передается путь клипа, который должен принять и обработать эти данные. Третий, необязательный, параметр используется для задания способа передачи отправляемых данных.
Примеры использования действия loadVariabies:
loadVariabies("http://site.ru/bin/program.pi", _root.dataHandler,"POST");
loadVariabies("data.txt", _root.dataHandler);
Оба эти выражения загружают полученные данные в клип dataHandler. Но только первое выражение получает их от серверной программы, передав ей способом POST значения переменных уровня клипа, а второе загружает их из текстового файла.
Метод loadVariabies вызывается почти так же:
<Клип, получаюпщй данные>.loadvariabies("Интернет-адрес серверной программы" [, "GET | POST"]);
Например:
_root.dataHandler.loadvariabies("http://site.ru/bin/program.pi", "POST");
Для загрузки данных в перекрывающийся фильм используется действие loadVariablesNum. Вот формат его вызова
loadvariabies("Интернет-адрес серверной программы",
"Уровень перекрытия фильма, принимающего данные"[, "GET|POST"]);
Комментарии, как говорится, излишни.
Вроде бы, все просто — выполняем действие или метод, получаем данные и обрабатываем их в своем приложении. Просто, да не совсем. Давайте рассмотрим небольшой сценарий, принимающий от серверной программы значение переменной frameNumber:
_root.loadVariables("http://site.ru/bin/program.exe");
_root.gotoAndStop(frameNumber);
Будет ли работать этот код? Может, будет, а может, и нет. И вот почему…
Когда мы даем приложению Flash команду получить данные от серверной программы или из текстового файла, мы не можем быть уверены в том, что эти данные будут получены сию же секунду. Более того, вообще нельзя быть уверенным, что Flash сможет получить их в течение какого-то строго определенного промежутка времени. Это может произойти как через долю секунды, так и через час (например, если произошел обрыв связи или если серверная программа перегружена другими запросами). И когда именно Flash получит результат, мы предугадать не можем.
Но если мы не можем предсказать время, в течение которого приложение получит внешние данные, то мы можем отследить сам момент их получения. Для этого достаточно обработать событие data объекта movieClip, возникающее после получения клипом всех (до самой последней переменной) данных.
С учетом сказанного перепишем приведенный выше сценарий:
_root.onData = function() {
_root.gotoAndStop(frameNumber);
}
_root.loadVariables("http://site.ru/bin/program.exe");
Вот теперь он будет работать.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Отправка и получение данных
Отправка и получение данных Программы, использующие сокеты, обмениваются данными с помощью функций send и recv, прототипы которых почти совпадают (перед указателем буфера функции send помещается модификатор const). Ниже представлен только прототип функции send. int send(SOCKET s, const char *
22.2.2. Получение вспомогательной программы
22.2.2. Получение вспомогательной программы Если программа нуждается в особых полномочиях не только во время первоначального запуска, то неплохое решение проблемы могут предложить вспомогательные программы. Вместо активизации с повышенными правами доступа всего
21.6.1 Вызовы в серверной программе TCP
21.6.1 Вызовы в серверной программе TCP 1. sockMain = socket (AF_INET, SOCK_STREAM, 0); Вызов socket имеет форму:дескриптор_socket = socket(адрес_домена, тип_коммуникации, протокол)Напомним, что интерфейс socket может использоваться для других видов коммуникаций, например XNS. AF_INET указывает на семейство
21.10.1 Вызовы в серверной программе UDP
21.10.1 Вызовы в серверной программе UDP 1. sockMain = socket(AF_NET, SOCK_DGRAM, 0);Семейство адресов — снова Интернет.2. bzero((char *)&servAddr, sizeof(servAddr));servAddr.sin_family = AF_INET;servAddr.sin_addr.s_addr = htonl(INADDR_ANY);servAddr.sin_port = 0;Вызовы инициализации адресной структуры сервера те же, что и в программе для TCP.3. bind(sockMain,
Использование программы SQL Query Analyzer для доступа к базе данных
Использование программы SQL Query Analyzer для доступа к базе данных РИС. 3.13. Основное окно программы SQL Query Analyzer Для выполнения команд SQL Server можно использовать программу SQL Query Analyzer (раньше она называлась ISQLW). С помощью этой программы можно не только осуществлять SQL-запросы, но
Передача и получение пользовательских данных состояния
Передача и получение пользовательских данных состояния Заключительным аспектом нашего рассмотрения асинхронных делегатов будет обсуждение последнего из аргументов метода BeginInvoke() (этот аргумент у нас до сих пор был равен null). С помощью этого параметра можно передать в
Получение множества наборов результатов с помощью объектов чтения данных
Получение множества наборов результатов с помощью объектов чтения данных Объекты чтения данных могут получать от одного объекта команды множество наборов результатов. Например, чтобы получить все строки таблицы Inventory и все строки таблицы Customers, можно указать оба
18.3. Получение данных акселерометра
18.3. Получение данных акселерометра Постановка задачи Требуется указать операционной системе iOS, чтобы она посылала вашей программе данные от
18.5. Получение данных гироскопа
18.5. Получение данных гироскопа Постановка задачи Требуется получать информацию о движении устройства от гироскопа, установленного в устройстве с
Получение информации о базе данных
Получение информации о базе данных После того как вы создали базу данных и подтвердили создание (commit), вы можете в isql отобразить ее детали, используя команду SHOW DATABASE:SQL> SHOW DATABASE;Database: /opt/databases/mydatabase.fdbOwner: ADMINUSRPAGE_SIZE 8192Number of DB pages allocated = 176Sweep interval = 20000Forced Writes are ONTransaction - oldest =
Получение доступа к базе данных из gfix
Получение доступа к базе данных из gfix Если вы соединяетесь с сервером удаленно, то в список переключателей вы должны включить имя пользователя и пароль для пользователя SYSDBA или для владельца базы данных. Такими переключателями являются:-pas[sword] <пароль> -u[ser]
4.1. Получение структурированной информации из базы данных
4.1. Получение структурированной информации из базы данных Это упражнение развивает навыки представления структурных объектов данных и управления ими. Оно показывает также, что Пролог является естественным языком запросов к базе данных.База данных может быть
Отправка данных серверной программе
Отправка данных серверной программе Предположим, мы создали несколько полей ввода, собирающих данные от пользователя. Как теперь отправить эти данные серверной программе?Прежде всего, их нужно поместить в переменные. Причем это должны быть переменные уровня клипа, т. е.