Disculpen mi impresición para titular el tema. Tengo que inicializar una aplicación flex con dos fuentes de datos, una para llenar un combobox y otra para llenar un data grid,
Cuando se inicia la aplicación llama a Productos.leer y luego a Descripciones.leer (en loadAplication() definida en el evento creationComplete de la aplicación). ambos traen dos array. Termina esa función y salta a onResultProductos y onResultDescripciones, el primero asigna el array de valores a "productos" y en el segundo debería asignar el resultado a "descripciones", pero no lo hace, no sé porque le asigna lo valores traídos en onResultProductos a "Descripciones".
Al principio intente definir un gateway para cada "call", pero a medida que la aplicación crece se pone feo el código, no creo que sea adecuado que por cada "call" tenga definir un gateway. No sé.
<mx:Script>
....
[Bindable] public var productos:Array;
public var gateway : clases.RemotingConnection;
[Bindable] public var descripciones:Array;
public var descripcion:Object={"id":"","descripcion":""};
....
public function loadAplicacion() : void{
gateway = new RemotingConnection("http://localhost/amfphp/gateway.php");
gateway.call('Productos.leer', new Responder(onResultProductos, gateway.onFaultRc));
gateway.call('Descripciones.leer', new Responder(onResultDescripciones, gateway.onFaultRc));
}
private function onResultProductos(result: Object) :void {
productos=result as Array;
}
private function onResultDescripciones(result: Object) :void {
descripciones=result as Array; //cuando llega aquí le asigna result=productos
cbDescripcionAlta.dataProvider=descripciones;
cbDescripcionAlta.labelField="DESCRIPCION";
}
private function onResultAgregarProducto(result: Object) :void {
mx.controls.Alert.show("todo ok");
}
//
private function onAgregarProducto(event:Event):void{
gateway.call('Productos.agregar', new Responder(onResultAgregarProducto, gateway.onFaultRc),
producto.codigo,producto.nombre,producto.descripci on, st_path, producto.precio);
}
....
El fichero clases.RemotingConnection.as:
...
public class RemotingConnection extends NetConnection
{
public function RemotingConnection( sURL:String )
{
objectEncoding = ObjectEncoding.AMF0;
if (sURL) connect( sURL );
}
public function onFaultRc( fault: Object) : void{
CursorManager.removeBusyCursor();
Alert.show( "Error: \n" + ObjectUtil.toString(fault) , "Error en Webservices");
}
}
}
fernando