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?
