Acudo a ustedes porque tengo un problema al cual le he dado todas las vueltas posibles y no logro encontrar la respuesta...ojala me haga entender...
Estoy haciendo un buscador en as3, cuando la gente ingresa los criterios de busqueda y da click en el botón buscar, el programa acude a un xml en donde están consignados todos los proyectos de la empresa de la siguiente manera:
Código XML :
<?xml version="1.0" encoding="utf-8"?> <proyectos> <proyecto> <id>1</id> <depto>Atlantico</depto> <ciudad>Bogota</ciudad> <zona>Norte</zona> <tipo>Bodega</tipo> <negocio>Arriendo</negocio> <info>informacion01</info> </proyecto> <proyecto> <id>2</id> <depto>Atlantico</depto> <ciudad>Manati</ciudad> <zona>Sur</zona> <tipo>Bodega</tipo> <negocio>Venta</negocio> <info>informacion02</info> </proyecto> <proyecto> <id>3</id> <depto>Antioquia</depto> <ciudad>Suan</ciudad> <zona>Occidente</zona> <tipo>Bodega</tipo> <negocio>Arriendo</negocio> <info>informacion03</info> </proyecto> <proyecto> <id>4</id> <depto>Atlantico</depto> <ciudad>Girardot</ciudad> <zona>Oriente</zona> <tipo>Bodega</tipo> <negocio>Arriendo</negocio> <info>informacion04</info> </proyecto> </proyectos>
Estoy llamando la información que el usuario requiere de acuerdo a los filtros de busqueda y la estoy mostrando de la siguiente manera:
Código ActionScript :
var urlProyectos:URLRequest = new URLRequest ("proyectos.xml"); var cargadorProyectos:URLLoader = new URLLoader(urlProyectos); var textoDepto:TextField; var textoCiudad:TextField; var textoZona:TextField; var textoTipo:TextField; var textoNegocio:TextField; var contenedor:MovieClip = new MovieClip(); var informacionProyectos:XML; var txt:Array = new Array(); var i:int; cargadorProyectos.addEventListener(Event.COMPLETE, cargaProyectos); function cargaProyectos(e:Event) { informacionProyectos = new XML(cargadorProyectos.data); for (i = 0; i<informacionProyectos..proyecto.length(); i++) { if (informacionProyectos..proyecto.depto[i] == "Atlantico" && informacionProyectos..proyecto.tipo[i] == "Bodega") { textoDepto = new TextField; textoCiudad = new TextField; textoZona = new TextField; textoTipo= new TextField; textoInfo = new TextField(); textoNegocio = new TextField(); textoDepto.text = informacionProyectos..proyecto.depto[i]; textoDepto.y = i*120; textoCiudad.text = informacionProyectos..proyecto.ciudad[i]; textoCiudad.y = i*120+22; textoZona.text = informacionProyectos..proyecto.zona[i]; textoZona.y = i*120+44; textoTipo.text = informacionProyectos..proyecto.tipo[i]; textoTipo.y = i*120+66; textoNegocio.text = informacionProyectos..proyecto.negocio[i]; textoNegocio.y = i*120+88; contenedor.addChild(textoDepto); contenedor.addChild(textoCiudad); contenedor.addChild(textoZona); contenedor.addChild(textoTipo); contenedor.addChild(textoNegocio); addChild(contenedor) } } }
Lo anterior me dice que el usuario quiere ver los proyectos que son del departamento Atlantico y que son de tipo bodega.....el código me funciona perfectamente, ya que me muestra la información requerida....lo que pasa es que no me muestra la información ordenada, ya que si por ejemplo, los proyectos que se encuentran en el nodo 1 y 3 del xml cumplen con el criterio de búsqueda, el primero se me muestra en la coordenada 0 y el otro en la coordenada 240, dejando un espacio en blanco entre los 2 proyectos ya que el proyecto que se encuentra en el nodo 2 del xml no cumple con el criterio de búsqueda que el usuario requiere....
Como hago para que, sin importar la ubicación de nodo del proyecto en el xml, se me muestren consecutiva y ordenadamente los proyectos....
Ojalá me haya hecho entender y por favor solicito ayuda lo más pronto posible ....de antemano muchas gracias por lo que me puedan colaborar....