![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2010
Сообщений: 6
|
Всем доброго времени суток. Тема довольно избита, но все же - удовлетворительного решения так и не нашел. Есть такой код - 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, время: 15:15. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| php + flash |
| Опции темы | |
| Опции просмотра | |
|
|