Comunidad de diseño web y desarrollo en internet online

Problema cargando XML

Citar            
MensajeEscrito el 23 Sep 2009 05:06 pm
Hola a todos

El ejemplo del que parto es este:
http://www.cristalab.com/tutoriales/tutorial-del-componente-list-de-flash-c47l/

Bien, he creado el siguiente archivo llamado clientes.xml:

Código :

<clientes>
   <cliente nombre='Dani'/>
   <cliente nombre='Pablo'/>
</clientes>


Y ahora mi código similar al del ejemplo:

Código ActionScript :

//Carga de datos (XML)

clientes = new XML();
clientes.ignoreWhite = true;
clientes.onLoad = function(success) {
   if (success) {
      //Creamos los arrays donde iran los datos
      largo = clientes.firstChild.childnodos.length;
trace('largo:'); trace(largo);  //<-----------AQUI
//trace(clientes.firstChild.childNodes[0].attributes.nombre);
//trace(clientes.firstChild.childNodes[1].attributes.nombre);
      nombres = new Array(largo);

      //Llenar los arrays
      for (i=0; i<largo; i++) {
         nombres[i] = clientes.firstChild.childNodes[i].attributes.nombre;
      }
      llenarList();
   } else {
      trace("No se pudo cargar el XML");
   }
};
clientes.load("clientes.xml");

function llenarList() {
   //Atacheamos el componente
   attachMovie("List", "miLista", 1);
   //Propiedades
   miLista.setSize(400, 400);
   miLista.move(400,150,1);
   miLista.selectable = true;
   miLista.multipleSelection = false;
   miLista.hScrollPolicy = "auto";
   miLista.vScrollPolicy = "on";
   miLista.rowHeight = 18;
   //Le asignamos un proveedor de datos
   losDatos = new Array();
   miLista.dataProvider = losDatos;
   //Metemos los datos en el dataProvider
   for (i=0; i<clientes.length; i++) {
      losDatos.addItem({label:clientes[i]});
   }
}


El problema es que, aunque carga bien los datos porque no da error y los puedo ver manualmente (los trace con comentarios), no se porque la variable 'largo' es siempre undefined, en vez de ser 1 (por tener el xml 2 datos).
Como consecuencia de ello, aparentemente no se carga nada en el componente List.
De todas formas, si pongo a mano que largo=1, tampoco se carga nada en el componente List, que aparece en blanco. :shock:
Por más que miro lo veo exactamente igual que en el ejemplo.
¿Qué hago mal? :cry:

Por daniel69

78 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Sep 2009 06:51 pm
Ya funciona. Mira que soy inútil , resulta que el fallo estaba aquí:

//Creamos los arrays donde iran los datos
largo = clientes.firstChild.childnodos.length;

ES chilnodes, no childnodos.

Eso me pasa por retocar el código jejeje

Por daniel69

78 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.