Показать сообщение отдельно
Старый 15.01.2012, 18:19
ded100let вне форума Посмотреть профиль Отправить личное сообщение для ded100let Найти все сообщения от ded100let
  № 12  
Ответить с цитированием
ded100let

Регистрация: Mar 2009
Сообщений: 30
Кашу пишете, если честно. Попробуйте проверить PHP отдельно, переставив с $_POST на $_GET. Если будет функционировать, то ищите проблему в AS. Для начала не лепите так много условных операторов и прочих "фишек", а используйте только необходимый код для проверки "связи" с PHP. Как только "связь" будет установлена, то можно "наращивать" код. Так Вам будет легче находить ошибки на первых парах.

вот Вам примерный код для общения с сервером (возможны ошибки)

Код AS3:
package  {
 
        import flash.events.Event;
	import flash.events.IOErrorEvent;
	import flash.events.EventDispatcher;
	import flash.net.URLVariables;
	import flash.net.URLRequest;
	import flash.net.URLLoader;
	import flash.net.URLRequestMethod;
	import flash.net.URLLoaderDataFormat;
 
	public class Server extends EventDispatcher {
 
		public static const COMPLETE:String = "COMPLETE";
		public static const ERROR:String = "ERROR";
		private var loader:URLLoader;
		private var req:URLRequest;
		private var sendVars:URLVariables;
		private var getVars:URLVariables;
 
		public function Server () {
			req = new URLRequest();
			req.method = URLRequestMethod.POST;
			req.url = "http://site.com/";
 
			loader = new URLLoader();
		}
 
		public function addVars (name:String, value:*) :void {
			if (!sendVars) sendVars = new URLVariables();
 
			sendVars[name] = value;
		}
 
		public function send () :void {
			req.data = sendVars;
 
			loader.addEventListener(Event.COMPLETE, onComplete);
			loader.addEventListener(IOErrorEvent.IO_ERROR, onError);
			loader.dataFormat = URLLoaderDataFormat.VARIABLES;
			loader.load(req);
 
			// #
			trace("send");
			deepTrace(sendVars);
		}
 
		private function onComplete (e:Event) :void {
			loader.removeEventListener(Event.COMPLETE, onComplete);
			loader.removeEventListener(IOErrorEvent.IO_ERROR, onError);
 
			getVars = new URLVariables();
			getVars.decode(e.currentTarget.data);
 
			// #
			trace("get");
			deepTrace(getVars);
 
			dispatchEvent(new Event(Server.COMPLETE));
		}
 
		private function onError (e:Event) :void {
			loader.removeEventListener(Event.COMPLETE, onComplete);
			loader.removeEventListener(IOErrorEvent.IO_ERROR, onError);
 
			dispatchEvent(new Event(Server.ERROR));
		}
 
                public function getVar (name:String) {
			if (getVars[name]) {
				return getVars[name];
			}
			return undefined;
		}
 
		private function deepTrace (obj:*) : void {
			for (var val:* in obj) {
				trace('[' + typeof(obj[val]) + '] ' + val + ' => ' + obj[val]);
			}
		}
	}
}
а так использовать

Код AS3:
package  {
 
	import flash.display.Sprite;
	import flash.events.*;
 
	public class Main extends Sprite {
 
		public function Main () {
 
			var loader:Server = new Server();
				loader.addVars("id", 243);
				loader.addVars("login", "login");
				loader.addVars("password", "123456");
 
				loader.addEventListener(Server.COMPLETE, complete);
				loader.addEventListener(Server.ERROR, error);
				loader.send();
		}
 
		private function complete (e:Event) :void {
			e.currentTarget.removeEventListener(Server.COMPLETE, complete);
			e.currentTarget.removeEventListener(Server.ERROR, error);
			trace(e.currentTarget.getVar("var"));
		}
 
		private function error (e:Event) :void {
			e.currentTarget.removeEventListener(Server.COMPLETE, complete);
			e.currentTarget.removeEventListener(Server.ERROR, error);
 
			trace("error");
		}
	}
}