Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/05/2010, 10:02
Avatar de fernando_6867
fernando_6867
 
Fecha de Ingreso: mayo-2009
Ubicación: Parana - Entre Rios
Mensajes: 8
Antigüedad: 15 años, 6 meses
Puntos: 0
inicializar aplicacion flex con dos fuentes de datos

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