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.
Por más que miro lo veo exactamente igual que en el ejemplo.
¿Qué hago mal?
