Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/04/2010, 14:05
juandedios
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años, 6 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.