¿Quieres registrarte?

XML en ActionScript 3 con E4X

Por: Rafeo
22 de Mayo del 2007
474 de clabLevel
Otros artículos de Rafeo
20,639 visitas

Comparto un experimento que andaba haciendo con la nueva forma de manejar XMLs en AS3, la sintaxis E4X.

Tomemos el caso en el que hay un listado de canciones (en archivo tracks.xml) que tiene como propiedades su Artista, Nombre y URL del mp3 a cargar. Lo que hacemos aquí es sólo listar el nombre del artista.

Aquí el archivo tracks.xml :

Código :

<tracks>
  <track nombre="Gato Lopez" artista="Ska P"  url="http://threefingeredguy.revsoft.org/SKAP/13%20El%20Gato%20Lopez.mp3"/>
  <track nombre="Preso" artista="Aleks Syntek" url="http://www.munisurquillo.gob.pe/web_juventudes/reproductor/mp3player/musica/Aleks%20Syntek.-%20Preso.mp3"/>
  <track nombre="De mis pasos" artista="Julieta Venegas"  url="http://www.munisurquillo.gob.pe/web_juventudes/reproductor/mp3player/musica/Julieta%20Venegas%20-%20De%20mis%20pasos.mp3"/>
  <track nombre="Promiscuity" artista="Manu Chao"  url="http://honidou.free.fr/music/manu_chao/Proxima%20Estacion-%20Esperanza/04%20Promiscuity.mp3"/>
  <track nombre="Final Countdown" artista="Europa"  url="http://www.personal.psu.edu/lea128/Europe%20-%20The%20Final%20Countdown.mp3"/>
  <track nombre="Dream On" artista="Manolo Camp"  url="http://www.manolocamp.net/music/mp3/Manolo%20Camp%20-%20Dream%20on.mp3"/>
  <track nombre="Don't lie" artista="Black Eyed Peas"  url="http://www.semret.org/music/Black%20Eyed%20Peas%20-%20Dont%20Lie.mp3"/>
  <track nombre="Me gustas tu" artista="Manu Chao"  url="http://honidou.free.fr/music/manu_chao/Proxima%20Estacion-%20Esperanza/06%20Me%20Gustas%20Tu.mp3"/>
  <track nombre="Grooving" artista="UB40"  url="http://www.munisurquillo.gob.pe/web_juventudes/reproductor/mp3player/musica/UB40%20-%20Groovin.mp3"/>
  <track nombre="Levas Polka - Finkstor" artista="Loituma"  url="http://www.box.net/public/static/c01lpg7gpk.mp3"/>
  <track nombre="A Town Called Malice" artista="The Jam"  url="http://localhostr.com/files/d6aab882e0427660a154.mp3"/>  
</tracks>


Y aquí el código AS3:

Código :

package 
{
   import flash.display.*;
   import flash.events.*;
   import flash.net.*;
   import flash.utils.*;

   public class cargaXML extends Sprite
   {
      public function cargaXML()
      {
         var loader:URLLoader=new URLLoader  ;
         var request:URLRequest=new URLRequest("tracks.xml");
         loader.dataFormat=URLLoaderDataFormat.TEXT;
         loader.addEventListener(Event.COMPLETE,xmlcompletado);
         loader.load(request);
      }
      private function xmlcompletado(event:Event):void
      {
         //ya se puede reconocer el tipo de error al cargar el XML usando try y catch
         try {
            // convierte el texto descargado en una instancia XML
            var miXML:XML=new XML(event.target.data);
            // Acá el la instancia XML miXML ya está lista para usarse con la sintaxis E4X
            // hacemos uso del for each (ojo: este no regresa ningún índice ehh)
            for each (var item:XML in miXML.elements()) {
               //usando @atributo en este caso el atributo artista
               trace(item.@artista);
            }
         } catch (e:TypeError) {
            trace("No se pudo parsear el XML");
            trace(e.message);
         }
      }
   }
}


Espero que les sirva. ^^ Y si extienden el problema y/o la explicación mucho mejor :D .

Enviar a twitter Enviar a facebook


También te interesa


Etiquetas actionscript_3

Comentarios | Enviar un comentario
Buen código. Lo pasaré a tip (y)
Por: Zguillez
Que bueno...jejeje..jalaan info de mi desarollo web...Municipalidad de Surquillo...

Christian Portuguez C.
www.elportu.com
Por: Christian Portuguez C_blo
Jajaja,hasta ahora me voy enterando que esto está en tips, jajaja, gracias Zguillez.
Christian, perdón por urgar en tus mp3 pero no me pude resistir a la música de UB40 (Se va cantando : "... I can't stop Grooving, grooving...").
Por: Rafeo
no nada de perdon esta bueno...sigue adelante...dale èxito en todo lo que hagas para eso es la comunidad !!

Un abrazo desde Lima - Perù

Christian Portuguez
www.elportu.com
Por: Christian Portuguez_blog
Muy Bueno! RAFEO!
Un programa que me ha sido de mucha ayuda al trabajar con AS2 y XML ha sido SEPY. Buenisimo!
Por: Arnau_blog
Muy bien gracias :)
Por: Miguel_blog
Poruqe no dice paso a paso
Por: Jose-blog
me no entender
Por: Alfonso blog-blog
:O (y)
Por: miguel-blog
Me generó un error:
1037: Packages cannot be nested.
Alguna ayuda?
Por: nhack
Hola tio sigo muxos tus blog y tengo un problemilla con as3 y xml.

no se como quitar el nombre del nodo para ke salga solo el valor de este mismo

<nombre>paco</nombre> siempre sale asi en pantalla
y no se como kitarles el nombre del nodo.
Por: angel-blog
puedes usar algo como esto:

item.@artista.toString();
item.@artista.toXMLString();

una de las dos te funcionará.
Por: ilich-blog
Hola, esta bueno el codigo, pero me da un error 1037: Packages cannot be nested.
Por: JoseAlejandro_Realza
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.