Foros del Web » Creando para Internet » Flash y Actionscript »

Cargar contenido de XMLList en componente List

Estas en el tema de Cargar contenido de XMLList en componente List en el foro de Flash y Actionscript en Foros del Web. Hola, quiero cargar el contenido de un XMLList en un componente list, me salen los espacios de los elementos, pero sin el texto. Archivo XML: ...
  #1 (permalink)  
Antiguo 17/04/2010, 12:35
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Cargar contenido de XMLList en componente List

Hola, quiero cargar el contenido de un XMLList en un componente list, me salen los espacios de los elementos, pero sin el texto.

Archivo XML:
Código XML:
Ver original
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <canciones>
  3.     <cancion>
  4.         <nombre>SOBREDOSIS</nombre>
  5.         <artista>Los Titanes de Colombia</artista>
  6.         <interprete>Orquesta La Exclusiva: Juan de Dios</interprete>
  7.         <url>song/sobredosis.mp3</url>
  8.     </cancion>
  9.     <cancion>
  10.         <nombre>LAS MUJERES ESTAN DE MODA</nombre>
  11.         <artista>Grupo Niche</artista>
  12.         <interprete>Orquesta La Exclusiva: Juan de Dios</interprete>
  13.         <url>song/las mujeres estan de moda.mp3</url>
  14.     </cancion>
  15.     <cancion>
  16.         <nombre>YO NO SE MAÑANA</nombre>
  17.         <artista>Luis Enrique</artista>
  18.         <interprete>Orquesta La Exclusiva: Juan de Dios</interprete>
  19.         <url>song/yo no se manana.mp3</url>
  20.     </cancion>
  21. </canciones>

Y el codigo AS3 es:
Código AS3:
Ver original
  1. import fl.controls.List;
  2. import fl.data.DataProvider;
  3. import flash.net.*;
  4. import flash.events.*;
  5.  
  6. var lista:List = new List();
  7.  
  8. lista.setSize(150, 300);
  9. lista.move(50, 50);
  10.  
  11. addChild(lista);
  12.  
  13. var xml:XML;
  14. var archivo:String = "canciones.xml";
  15. var req:URLRequest = new URLRequest(archivo);
  16. var loader:URLLoader = new URLLoader();
  17. loader.load(req);
  18. loader.addEventListener(Event.COMPLETE, whenComplete);
  19.  
  20. function whenComplete(e:Event) {
  21.     var xml:XML = new XML(e.target.data);
  22.     var canciones:XMLList = xml.cancion.nombre.text();
  23.     var listaCanciones:Array = new Array();
  24.     var i:uint = 0;
  25.    
  26.     for (i; i < canciones.length(); i++) {
  27.         listaCanciones.push(canciones[i]);
  28.     }
  29.    
  30.     var dp:DataProvider = new DataProvider(listaCanciones);
  31.     lista.dataProvider = dp;
  32. }

Espero que me puedan ayudar.

Gracias.
__________________
El aprendiz.
  #2 (permalink)  
Antiguo 17/04/2010, 14:05
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Respuesta: Cargar contenido de XMLList en componente List

Bueno yo mismo me respondo:

Lo que quería hacer era que un List cargue datos de un archivo XML (que son canciones) y al dar click a un elemento suene la canción que corresponde.

Aquí está el código:
Código AS3:
Ver original
  1. import fl.controls.List;
  2. import fl.data.DataProvider;
  3. import flash.net.*;
  4. import flash.events.*;
  5.  
  6. var lista:List = new List();
  7.  
  8. lista.setSize(180, 300);
  9. lista.move(50, 50);
  10.  
  11. addChild(lista);
  12.  
  13. var xml:XML;
  14. var archivo:String = "canciones.xml";
  15. var req:URLRequest = new URLRequest(archivo);
  16. var loader:URLLoader = new URLLoader();
  17. loader.load(req);
  18. loader.addEventListener(Event.COMPLETE, whenComplete);
  19.  
  20. function whenComplete(e:Event) {
  21.     var xml:XML = new XML(e.target.data);
  22.     var canciones:XMLList = xml.cancion.nombre.text();
  23.     var urls:XMLList = xml.cancion.url.text();
  24.     var listaCanciones:Array = new Array();
  25.     var listaUrls:Array = new Array();
  26.     var i:uint = 0;
  27.    
  28.     for (i; i < canciones.length(); i++) {
  29.         listaCanciones.push(canciones[i]);
  30.         listaUrls.push(urls[i]);
  31.         lista.addItem({label:listaCanciones[i], data:listaUrls[i]});
  32.     }
  33. }
  34.  
  35. lista.addEventListener(Event.CHANGE, tocarCancion);
  36.  
  37. function tocarCancion(e:Event):void {
  38.     var song:URLRequest = new URLRequest(lista.selectedItem.data);
  39.     var sound:Sound = new Sound(song);
  40.     sound.play();
  41. }
__________________
El aprendiz.

Etiquetas: componente, contenido, list
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:53.