Clase Remoting AMFPHP - ActionScript 3 | Phoxer.com
Clase Remoting AMFPHP - ActionScript 3
29/10/2007

En hora buena, ya tengo desarrollada una clase para manejar las conexiones a bases de datos MySql con Remoting y AMFPHP..

Veamos lo simple de la implementación:

import phoxer.DataManager.Remoting;
 
var superUrl:String="http://www.phoxer.com"; //Ruta hacia donde esta el amfphp;
var rm:Remoting = new Remoting(String(superUrl+"/amfphp/gateway.php"),onError);
 
function onError():void{
 
}

Listo, con eso estamos conectados a la base de datos..

Aca esta la clase Remoting completa:

/**
Remoting by .:[Phoxer]:.
http://www.phoxer.com
v 2.0;
*/
package phoxer.DataManager{
	import flash.events.Event;
	import flash.events.NetStatusEvent;
	import flash.net.NetConnection;
	import flash.net.ObjectEncoding;
	import flash.net.Responder;
	import flash.system.Security;
	public class Remoting{
		private var coneccion:NetConnection 
		private var respuesta:Responder
		private var servicioMetodo:String;
		private var errorBack:Function;
		public function Remoting(gateUrl:String,err:Function=null){
			Security.allowDomain("*");
			Security.allowInsecureDomain("*");
			coneccion = new NetConnection();
			coneccion.objectEncoding = ObjectEncoding.AMF0;
			coneccion.connect(gateUrl);
			errorBack=err;
		}
		public function setConeccion(Opts:Object, servicio:String, methodo:String, Fback:Function):void {
			respuesta = new Responder(Fback, onError);
			servicioMetodo=servicio+"."+methodo;
			coneccion.call(servicioMetodo, respuesta, Opts);
			coneccion.addEventListener(NetStatusEvent.NET_STATUS, netStatus,false,0,true);
		}
		private function onError(fault:Event):void {
			if(errorBack!=null){
				errorBack();
			}
		}
		private function netStatus(status:NetStatusEvent):void {
			trace(status.info.code)
			switch (status.info.code) {
				case "NetConnection.Call.Failed":
					if(errorBack!=null){
						errorBack();
					}
				break;
				case "NetConnection.Call.BadVersion":
					if(errorBack!=null){
						errorBack();
					}
				break
			}
 
		}
	}
}