Skip to Content »

Lector de RSS en AS3

  • 18/12/2006
  • 1:14 am
  • unijimpe

En esta oportunidad les presente mi primer ejemplo en ActionSript 3 al cual por motivos de tiempo no había hecho pruebas. Bueno como en un post anterior hablamos un Lector RSS en Flash con AS2, esta vez lo modificaremos y reescribiremos en AS3 con lo cual veremos que nuevas nos trae este nueva versión de ActionScript.

Como en el ejemplo anterior, utilizaremos la misma interfaz gráfica, es decir los campos de texto (txttitle, txtdescription y txtcontent), ojo que en este proyecto estamos utilizando Flash Professional 9 ActionScript 3.0 Preview para compilar nuestro movie.

El primer paso es hacer la carga del RSS que vamos a leer, antes utilizábamos la función load de la clase XML pero en esta ocasión utilizaremos URLRequest que sirve para cargar un archivo externo y URLLoader que sirve para verificar la carga del archivo, estas dos clases son parte del package flash.net.

  1. var rssURL:String = "http://blog.unijimpe.net/feed/";
  2. var rssXML:URLRequest = new URLRequest(rssURL);
  3. var myLoader:URLLoader = new URLLoader(rssXML);
  4. myLoader.addEventListener("complete", xmlLoaded);

En donde hemos agregado un listener para detectar que se ha cargado completamente el archivo, este listener ejecutará la función xmlLoaded la cual crearemos a continuación en donde parsearemos los datos del XML recién cargado.

Lo primero que haremos sera crear una variable del tipo XML, este tipo de variables a diferencia de AS2 ahora soporta XPath para navegar en la estructura del XML con lo cual solo colocamos el nombre del nodo al que deseamos acceder y obtendremos el dato requerido. Además el tipo de variable XML tiene una propiedad llamada child con la cual podemos acceder a un determinado nodo, según la estructura del RSS dentro del primer nodo se encuentra toda la data, veamos nuestro código.

  1. function xmlLoaded(evtObj:Event) {
  2.     var rss:XML = new XML(myLoader.data);
  3.    
  4.     var vtit:String = rss.child(0).title;
  5.     var vurl:String = rss.child(0).link;
  6.     var vdes:String = rss.child(0).description;
  7.     var vcon:String = "";
  8.    
  9.     for each (var nodo:XML in rss..item) {
  10.         vcon += "<a href='"+nodo.link+"'><b>"+nodo.title;
  11.         vcon += "</b></a><br>"+nodo.description+"<br><br>";
  12.     }
  13.     txttitle.htmlText = "<a href='"+vurl+"'>"+vtit+"</a>";
  14.     txtdescription.text = vdes;
  15.     txtcontent.htmlText = vcon;
  16. }

Como se puede observar ahora se tiene una nueva forma de iterar for each como en otros lenguajes de programación el cual permite recorrer todos los elementos de un objeto, en este caso recorremos todos los nodos del XML que tengan el nombre item. Todos los datos los guardamos en cuatro variables las cuales al final lo asignamos a los textfield de nuestro flash.

Finalmente uniendo todas las piezas obtendremos.

  1. var rssURL:String = "http://blog.unijimpe.net/feed/";
  2. var rssXML:URLRequest = new URLRequest(rssURL);
  3. var myLoader:URLLoader = new URLLoader(rssXML);
  4. myLoader.addEventListener("complete", xmlLoaded);
  5.  
  6. function xmlLoaded(evtObj:Event) {
  7.     var rss:XML = new XML(myLoader.data);
  8.    
  9.     var vtit:String = rss.child(0).title;
  10.     var vurl:String = rss.child(0).link;
  11.     var vdes:String = rss.child(0).description;
  12.     var vcon:String = "";
  13.    
  14.     for each (var nodo:XML in rss..item) {
  15.         vcon += "<a href='"+nodo.link+"'><b>"+nodo.title;
  16.         vcon += "</b></a><br>"+nodo.description+"<br><br>";
  17.     }
  18.     txttitle.htmlText = "<a href='"+vurl+"'>"+vtit+"</a>";
  19.     txtdescription.text = vdes;
  20.     txtcontent.htmlText = vcon;
  21. }

A continuación les dejo el ejemplo compilado y funcionando, en donde hemos prescindido del scroll pues por ahora los componentes no estan disponibles para AS3. Pueden hacer scroll con la propiedad MouseWheel es decir con la ruedita del mouse.

Cargando Flash

Y como para no perder la constumbre les dejo los archivo fuente de este ejemplo, espero les sirva y desde ahora estaremos encaminados a aprender AS3.

Posts Relacionados

Total de Comentarios: 2

Publicidad
Tadder
25/07/2007
1:45 am

Hola amigo oye yo logre ponerle el Scroll y funciona bien, solo debes poner scroller.scrollTarget = news_contenido; despues de igualar el contenido de la caja con el de la variable

15/04/2008
11:39 am

Ya tome nota del post y tu comentario Tadder, estoy por ponerlo en mi site. Saludos desde Cancun Mexico

Enviar Comentario

(*)

(*)