soy nuevo el flex pero me manejo bastante bien en otros lenguajes. He estado asiendo unas pruebas con httpservices y me funciona bastate bien la comunicacion y he logrador mostrar datos desde mi servidor ha mi aplicacion flex en un datagrid, pero mi idea es que esos parametos que yo recivo, pasarlos a variables y usarlas en funciones..para generar imagenes dinamica y darles posicionamiento (x,y).
alguien me puede explicar como sacar la info de los datagridcolumn o si existe otra forma de hacerlo, por lo que me he dado cuenta, solo se puede hacer con la propiedad
dataprovider del datagrid
de ante mano gracias....
Código:
lado del servidor : prueba.php<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="servicio1.send(),generarbuses(),setInterval(interval,5000)"> <mx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.controls.ProgressBar; import flash.trace.Trace; import mx.controls.Alert; import flash.utils.setInterval; import mx.controls.Image; import mx.controls.dataGridClasses.DataGridColumn; public var posicionX:Number; public var posicionY:Number; public var nombreImagen:String; public var i:Number; public var buses:Array=new Array; public function CrearBus(indice:Number,nombreBus:String,posisionx:Number,posiciony:Number):void { /* en esta funcion se crean de forma dinamica los buses que se encuentran asiendo un recorrido */ var bus:Image=new Image(); bus.source="image1.gif"; bus.id=nombreBus; bus.x=posicionX; bus.y=posicionY; bus.name=nombreBus; bus.width=80; bus.height=100; bus.toolTip=nombreBus; // una vez creados se guardan en un array buses[indice]=bus; // se agregan al display para ser visualizados addChild(bus); }// se crean los buses public function generarbuses():void { var columnasArray:Array=data.columns; posicionX=300; posicionY=100; nombreImagen="bus"; i=1; var j:Number; for(j=0; j<=i-1; j++) { CrearBus(j,nombreImagen+j,posicionX,posicionY); posicionY=posicionY+50; }// end for } public function action(cantidad:Number) { posicionX=cantidad; var j:Number; for (j=0; j<=cantidad; j++) { var busesMover:Image=new Image() busesMover=buses[j]; busesMover.x=posicionX; } } public function interval() { action(data.columns[4]); } ]]> </mx:Script> <mx:HTTPService id="servicio1" url="http://172.16.0.60/prueba.php" method="POST" > </mx:HTTPService> <mx:DataGrid visible="true" id="data" dataProvider="{servicio1.lastResult.buses.bus}" right="44" bottom="116"> <mx:columns> <mx:DataGridColumn id="idd" headerText="nombre bus" dataField="id"/> <mx:DataGridColumn id="xx" headerText="posicion x" dataField="x"/> <mx:DataGridColumn id="yy" headerText="posicion" dataField="y"/> <mx:DataGridColumn id="Cantidadd" headerText="cantidad de buses" dataField="cantidad"/> </mx:columns> </mx:DataGrid> </mx:Application>
Código:
header('Content-type: text/xml'); echo "<buses>"; echo "<bus>"; echo "<id>bushttpservice</id>"; echo "<x>600</x>"; echo "<y>200</y>"; echo "<cantidad>4</cantidad>"; echo "</bus>"; echo "</buses>";