|
|
|||||
Регистрация: Jun 2010
Сообщений: 6
|
sendToURL() - почему не работает?
Всем доброго времени суток. Тема довольно избита, но все же - удовлетворительного решения так и не нашел. Есть такой код - a.s.:
package pac { import flash.display.MovieClip; import flash.display.*; import flash.events.*; import flash.net.URLVariables; import flash.net.URLRequest; import flash.net.URLRequestMethod; import flash.net.sendToURL; public class btnGo extends SimpleButton { public function btnGo() { this.addEventListener(MouseEvent.CLICK, click_func); function click_func():void { trace("нажали кнопку"); var url:String = "http://www.proba.ru/index.php"; var req:URLRequest = new URLRequest(url); req.method = URLRequestMethod.POST ; var variables:URLVariables = new URLVariables(); variables.myName = 12345; req.data = variables; sendToURL(req); }//коец функции - клик по кнопке }//конец конструктора }//конец класса }//конец пакета php: <?php echo "Приветствие. Тестируем обмен данными между flash и php"; echo "<br>"; $b = $_POST['myName']; echo $b; echo"<p></p>"; ?> <embed src="proba.swf" width ="550" height="400"></embed> А если заменить на navigateToURL() - все работает. В чем причина?? |
|
|||||
Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
|
используйте URLLoader
__________________
low + |
|
|||||
Регистрация: Jun 2010
Сообщений: 6
|
Изначально я так и делал. Но результат тот же - связка не работает. Поэтому решил пока только с отправкой данных разобраться. Чем меньше кода - тем легче разобраться с ошибками, я думаю)
|
|
|||||
Регистрация: Jun 2010
Сообщений: 6
|
не знаю ничего насчет политики безопасности. Я с php знаком всего неделю. У меня D.E.N.W.E.R - локальный сервер. Но как написал выше - при замене функции sendToURL на navigateToURL() все работает. А в чем тут существенная разница?
|
|
|||||
Как Вы понимаете, что все работает или не работает?
Разница между sendToUrl и navigateToUrl в том, что sendToURL отправляет данные на сервер и игнорирует ответ от сервера, а navigateToURL открывает или заменяет окно в приложении, которое содержит контейнер Flash Player (©Adobe) |
|
|||||
Работает navigate у вас потому, что вы просто переходите на страницу которую выдает в поток php. А при send вы отправляете данные, и они принимаются, но ответ во флешку не приходит, и не должен, ибо ситуация такая как написал zuxul. Чтобы убедиться в том, что работает, например, заставьте php создать произвольный текст. файл.
Добавлено через 55 минут Цитата:
Цитата:
|
|
|||||
Регистрация: May 2010
Сообщений: 543
|
Кстати, если посылаете фоновый запрос на сервер, вывод лучше буферизировать
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с) |
|
|||||
Регистрация: Jun 2010
Сообщений: 6
|
Хм.. Похоже данные всетаки отправляются. Как я понял при sendToUrl() текущая страница с отправляющим swf
файлом просто не должна обновляться. Поэтому строка переданную переменную не отображает на странице. Хотя данные переданы. Тогда возвращаясь к URLLoader - каким образом php передает данные во флэш? Вроде это делается через echo как -то.. Добавлено через 10 минут Допустим есть код a.s. package pac { import flash.display.MovieClip; import flash.display.*; import flash.events.*; import flash.net.URLVariables; import flash.net.URLRequest; import flash.net.URLRequestMethod; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; public class btnGo extends SimpleButton { public function btnGo() { this.addEventListener(MouseEvent.CLICK, click_func); function click_func():void//*************************CLICK { trace("нажали кнопку"); var url:String = "http://www.proba.ru/index.php"; var req:URLRequest = new URLRequest(url); req.method = URLRequestMethod.POST ; var variables:URLVariables = new URLVariables(); variables.myName = 12345; req.data = variables; var loader:URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, onComplete); loader.load(req); loader.dataFormat = URLLoaderDataFormat.VARIABLES ; function onComplete(e:Event):void { // выводим полученные данные в поле result_tf trace(loader.data.buf ); } }//конец функции - клик по кнопке }//конец конструктора }//конец класса }//конец пакета как тогда должна выглядеть php составляющая, чтобы переменную myName вернуть назад во флэш? У меня результат трейса все время "undefined" выходит.. |
Часовой пояс GMT +4, время: 14:08. |
|
« Предыдущая тема | Следующая тема » |
Теги |
php + flash |
|
|