![]() |
URLLoader загрузка переменных
Вложений: 1
пытаюсь из формы передать POST запрос и получить от скрипта ответ. наталкиваюсь на ошибку:
-------------------------------------------------------------------- Error: Error #2101: Строка, переданная в URLVariables.decode(), должна быть строкой запроса закодированного URL-адреса и содержать пары имя/значение. at Error$/throwError() at flash.net::URLVariables/decode() at flash.net::URLVariables() at flash.net::URLLoader/onComplete() --------------------------------------------------------------------- Код: Код AS3:
в test.php: PHP код:
Опытным путем замечено если убрать URLLoaderDataFormat.VARIABLES; то все работает без ошибок. в чем подвох, во вложении - архив с проектом ( FlashDevelop ) |
возможно пара имя\значение имеется ввиду не просто единица а например var=1
|
_variables.test = '1';
это и есть пара - имя/значение |
я про php
|
URLLoaderDataFormat.VARIABLES - это формат ответа, а не запроса.
|
PHP код:
Я тоже сейчас маюсь с этой поблемой, не хочу плодить тем, надеюсь мне тут ответит кто-нибудь, скажите, если в php файле написаны не только имя=значение, а еще код, который выполняется на сервере, то flash не сможет распознать в этом коде переменные, которые я ему вывожу с помощью echo? Дело в том, что если в php присутствуют строки - приема переменной и вывод ее, то flash без проблем все это грузит, а если написать хоть чего еще, то все - ошибка, которая написана вверху поста. Подскажите как лучше поступить? |
Писать можно что угодно, для флеша имеет значение только результат работы скрипта.
|
Цитата:
mre, подскажи плиз алгоритм, я уже третий день пытаюсь вникнуть =((( |
Цитата:
|
Цитата:
|
"Выхлоп" - это все, что выводят print и echo.
Соответственно, при URLLoaderDataFormat.VARIABLES этот "выхлоп" должен содержать пары имя/значение. |
я вот так пытаюсь загрузить переменные
Код AS3:
PHP код:
|
Грамотность кода AS3 оставляет желать лучшего. Приватные статические методы - это жесть.
По теме. Скорей всего, скрипт не доходит до строчки с echo - либо там ошибка, либо идет по else. По окончании загрузки протрейсите ответ и все станет ясно. |
Цитата:
|
"Протрейсить" можно не только функцией trace, а, например, вывести в какое-нибудь текстовое поле.
|
Цитата:
|
mre, ну не жесть, если применяются осознано и по делу.
|
__etc, а можно примерчик такой ситуации?
Просто ни разу не было такой необходимости. |
mre, я пытаюсь написать класс который имеет статические функции, чтобы не создавать экземпляры этого класса, а просто вызывать эти функции в любой части программы для обработки данных. А уж как там криво или нет получается не знаю - потому что опыта в as3 мало.
Вообще если брать мой пример - ошибка скорее всего в php в этих строках PHP код:
Видимо не судьба, поскольку я не знаю php написать на нем верный код для flash не получиться, подскажите, если кто знает а лучше дайте ссылочку на пример подсчета php сценарием количества файлов в папке и последующей загрузке этих данных во flash =) |
Цитата:
|
ок разобрался - сделал сценарий подсчета файлов.
У меня только вопрос Вот смотрите, я вызываю класс, в который передаю данные для подсчета файлов внужной дирректории, и тут же прикрепляю к этому классу слушатель кастомного события. Далее класс, получивший данные о директории, начинает загрузку файла php, так как в php прописан сценарий, он начинает свою работу как только файл был запрошен с сервера,так? php файл начинает подсчет файлов и выводит его в echo, flash, услышав php немедленно загружает данные в виде переменной имя=значение, после загрузки переменных flash рапортует наверх в виде кастомного события о том что php ответил на запрос. Тк вот мой нубский вопрос - в классе, который вызывает загрузку php слушатель прикреплен к событию загрузки и функция вызывается при полной загрузке php файла, но php же должен еще и успеть посчитать файлы, значит событие о загрузке происходит раньше чем php что то сделает - будет ли flash ждать исполнения сценария от php или же теоретически может отрапортовать наверх о загрузке файла php не дождавшись исполнения сценария php? |
Все будет ok ;)
|
Цитата:
Цитата:
|
Цитата:
|
trace(php загрузится == php сделает выхлоп) // true
Т.е. это одно и то же. |
У меня получилось так:
Отсюда, из последнего примера взял код AS3 http://help.adobe.com/ru_RU/ActionSc...0204-7cfd.html Код AS3:
PHP код:
|
у меня такая же ошибка выдавалась из-за строчки в PHP:
PHP код:
PHP код:
|
| Часовой пояс GMT +4, время: 16:02. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.