En este caso les traigo el siguiente codifo AS lo que hace, o mejor dicho, debería hacer, es cargar un XML y genera una grilla de información.
Trate de explicar todo el código para quien pueda ayudarme le sea mas fácil entenderlo.
Tan solo son dos los problemas que tengo (estos están detallados en el código también):
1- Muestra tan solo una columna de información.
2- No carga los valores de los ARRAYS
No es el XML ya que este funciona de 10 en otro proyecto.
Saludos y espero que alguien pueda darme un mano, realmente lo necesito!
Código ActionScript :
race("Portfolio Frame"); var myXML:XML = new XML(); myXML.load("pruebaXML.xml"); myXML.ignoreWhite = true; myXML.onLoad = function (success){ if (success){ grilla = this.firstChild; //Indica la cantidad de maquinas que hay en el XML. maquina = grilla.childNodes.length; trace("Cantidad de modelos en Base de Datos: " + maquina); //Arrays, contendrán la configuración de cada maquina. modelo = new Array(maquina); pn = new Array(maquina); ean = new Array(maquina); precio = new Array(maquina); color = new Array(maquina); terminacion = new Array(maquina); peso = new Array(maquina); medidas = new Array(maquina); origen = new Array(maquina); garantia = new Array(maquina); procesador = new Array(maquina); velocidadProcesador = new Array(maquina); ram = new Array(maquina); tipoRam = new Array(maquina); VelocidadRam = new Array(maquina); hd = new Array(maquina); tamanoPantalla = new Array(maquina); tipoPantalla = new Array(maquina); graficos = new Array(maquina); optico = new Array(maquina); camara = new Array(maquina); buetooth = new Array(maquina); wifi = new Array(maquina); hdmi = new Array(maquina); ethernet = new Array(maquina); usb = new Array(maquina); lectorTarjeta = new Array(maquina); tv = new Array(maquina); bateria = new Array(maquina); sistemaOperativo = new Array(maquina); //Lleno los Arrays con informacion. for (i=0; i<maquina; i++) { modelo[i] = grilla.childNodes[i].childNodes[0].firstChild.nodeValue; trace("Modelo en Base de Datos: " + modelo[i]); pn[i] = grilla.childNodes[i].childNodes[1].firstChild.nodeValue; ean[i] = grilla.childNodes[i].childNodes[2].firstChild.nodeValue; precio[i] = grilla.childNodes[i].childNodes[3].firstChild.nodeValue; color[i] = grilla.childNodes[i].childNodes[4].firstChild.nodeValue; terminacion[i]= grilla.childNodes[i].childNodes[5].firstChild.nodeValue; peso[i] = grilla.childNodes[i].childNodes[6].firstChild.nodeValue; medidas[i]= grilla.childNodes[i].childNodes[7].firstChild.nodeValue; origen[i]= grilla.childNodes[i].childNodes[8].firstChild.nodeValue; garantia[i]= grilla.childNodes[i].childNodes[9].firstChild.nodeValue; procesador[i]= grilla.childNodes[i].childNodes[10].firstChild.nodeValue; velocidadProcesador[i]= grilla.childNodes[i].childNodes[11].firstChild.nodeValue; ram[i] = grilla.childNodes[i].childNodes[12].firstChild.nodeValue; tipoRam[i]= grilla.childNodes[i].childNodes[13].firstChild.nodeValue; velocidadRam[i] = grilla.childNodes[i].childNodes[14].firstChild.nodeValue; hd[i] = grilla.childNodes[i].childNodes[15].firstChild.nodeValue; tamanoPantalla[i] = grilla.childNodes[i].childNodes[16].firstChild.nodeValue; tipoPantalla[i] = grilla.childNodes[i].childNodes[17].firstChild.nodeValue; graficos[i] = grilla.childNodes[i].childNodes[18].firstChild.nodeValue; optico[i] = grilla.childNodes[i].childNodes[19].firstChild.nodeValue; camara[i] = grilla.childNodes[i].childNodes[20].firstChild.nodeValue; buetooth[i] = grilla.childNodes[i].childNodes[21].firstChild.nodeValue; wifi[i] = grilla.childNodes[i].childNodes[22].firstChild.nodeValue; hdmi[i] = grilla.childNodes[i].childNodes[23].firstChild.nodeValue; ethernet[i] = grilla.childNodes[i].childNodes[24].firstChild.nodeValue; usb[i] = grilla.childNodes[i].childNodes[25].firstChild.nodeValue; lectorTarjeta[i] = grilla.childNodes[i].childNodes[26].firstChild.nodeValue; tv[i]= grilla.childNodes[i].childNodes[27].firstChild.nodeValue; bateria[i]= grilla.childNodes[i].childNodes[28].firstChild.nodeValue; sistemaOperativo[i] = grilla.childNodes[i].childNodes[29].firstChild.nodeValue; } //LLamo a la funcion llenarCampos llenarCampos(); }else{ trace("error al cargar datos en ARRAYS"); } } //El fin de esta función es crear una grilla donde muestre cada modelo por columna //y la configuración de cada uno por fila. //Para esto cree un Array que contendra a los demas arrays creados mas arriba. //El primer FOR indicara la cantidad de COLUMNAS (= a cantidad de maquinas) //El segundo FOR indicara la cantidad de FILAS (cantidad de ARRAYS o caracteristicas por maquina ) function llenarCampos(){ campos = new Array("modelo","pn","ean","precio","color","terminacion","peso","medidas","origen","garantia","procesador", "velocidadProcesador","ram","tipoRam","velocidadRam","hd","tamanoPantalla","tipoPantalla","graficos","optico", "camara","bluetooth","wifi","hdmi","ethernet","usb","lectorTarjeta","tv","bateria","sistemaOperativo"); var _locx= 0; var _locy= 0; var a= 0; var d= 0; //FOR encargado de las COLUMNAS (en este caso tengo un problema ya que no me muestra mas que una columna pero esto es algo que quiero ver luego). for(var b:Number = 0; b<maquina; b++){ trace("-----------------------------" + modelo[a] + "-----------------------------") //FOR encargado de las FILAS for(var c:Number = 0; c<30 ; c++){ //Agrego el movieClip "portField", lo renombro ("celda_" + a + c) //La variable "a" indica el numero de maquina //La variable "c" es otra variable que indica el numero del campo en si. //Quedando el nombre de cada celda de la grilla celda_00 ... celda029 //celda_90 ... celda_914 ... celda929 _root.contiene.attachMovie("portField", "celda_" +a+c, 100+c); //Posiciono cada celda dato = _root.contiene["celda_" +a+c]; dato._x= _locx * 80; dato._y= _locy * 25; //En esta parte del código INTENTO que se llene cada celda con información de los ARRAYS de arriba (los que poseen la característica de cada maquina) //"campo" es el array que contiene a los otros Arrays //"d" es una variable que incrementa a medida que se crean las celdas //"a" es una variable que incrementa a medida que completamos una columna // Si hacemos un trace(campos[d]+"["+a+"]"), veremos que nos dará lo siguiente //modelo[0] //pn[0] //ean[0] //precio[0] [size=16]// Es decir nos va dando el nombre de cada ARRAY y la posición. Pero me imprime "modelo[0]" y no el valor que hay en la posicion "0" del ARRAY "modelo"[/size] dato.texto.text = (campos[d]+"["+a+"]"); //Este IF lo unico que hace es ir incrementando las variables. if (d==29){ ++_locx; ++a; var d = 0; var _locy = 0; }else{ ++_locy; ++d } } } }