Saludos a todos...les cuento!!
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:
<?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>
lado del servidor : prueba.php
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>";