Показать сообщение отдельно
Старый 14.11.2011, 12:01
stweet вне форума Посмотреть профиль Отправить личное сообщение для stweet Найти все сообщения от stweet
  № 7  
Ответить с цитированием
stweet
 
Аватар для stweet

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
Цитата:
Сообщение от Inet_PC Посмотреть сообщение
Взял простейший пример отсюда.
PS. Из дебага не работает, нужно класть в webapps/BlazeDs. Почему уже сил разбираться нет.
Спасибо, в целом уже сам инфы накопал.
Если кому понадобиться скину простенький, уже готовый классик.

Код AS3:
package  
{
	import flash.events.Event;
	import flash.events.EventDispatcher;
 
	import flash.net.Responder;
	import flash.net.NetConnection;
 
	/**
	 * ...
	 * @author stweet
	 */
 
	public class SVRLoader extends EventDispatcher
	{
		static public const VO_OUT  :String = 'out';
		static public const VO_ERROR:String = 'error';
 
		private var nc:NetConnection;
 
		private var _path	:String = '';
		private var _service	:String = '';
		private var _command	:String = '';
		private var _param	:Object = null;
		private var _content	:Object	= null;
 
		// ////////////////////////////////////////////////////////////////////////////////
		public function SVRLoader () { }
 
		// ////////////////////////////////////////////////////////////////////////////////
		public function connect ():void {
			nc = new NetConnection();
			nc.client	  = this;
			nc.objectEncoding = 0;
			nc.connect(path);
		}
 
		// ////////////////////////////////////////////////////////////////////////////////
		public function send ():void {
			// Собственно тут и была моя проблема,
			// не зная, пытался передать параметры и ждал ответа сервера при соединении,
			// чего было делать не надо.	
			if (param != null) nc.call(service + "." + command, new Responder(result, fault), param);
			else nc.call(service + "." + command, new Responder(result, fault));
		}
 
		// ////////////////////////////////////////////////////////////////////////////////
		private function fault(ar:Object):void { dispatchEvent(new Event('error')); }
 
		// ////////////////////////////////////////////////////////////////////////////////
		private function result(ar:Object):void {
			content = ar;
			dispatchEvent(new Event('out'));
		}
 
		// ////////////////////////////////////////////////////////////////////////////////
		public function AppendToGatewayUrl (ar:*):void {  }
 
		// ////////////////////////////////////////////////////////////////////////////////
		public function get content():Object { return _content; }
		public function set content(ar:Object):void { _content = ar; }
 
		public function get path():String { return _path; }
		public function set path(ar:String):void { _path = ar; }
 
		public function get service():String { return _service; }
		public function set service(ar:String):void { _service = ar; }
 
		public function get command():String { return _command; }
		public function set command(ar:String):void { _command = ar; }
 
		public function get param ():Object { return _param; }
		public function set param (ar:Object):void { _param = ar; }
	}
}
Получился свой "RemoteObject" на AS.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!


Последний раз редактировалось stweet; 14.11.2011 в 12:14.