Hace poco se lanzo el Framework de Flex 2 (Beta 1).
En lo personal siempre he tenido mis dudas acerca de Flex, Al necesitar un servidor especial para ejecutar los archivos mxml, el precio Etc. Etc.
Hasta ahora que tengo un poco de tiempo decidí bajar el nuevo framework y probar que tal. Recuerden que es mi primer contacto con Flex aun no puedo decir que soy un entendido del tema ni mucho menos En fin
Lo primero que se me vino a la mente fue el ya tan común lector de RSS jeje
que se le va a hacer, repito, aun no exploro todas las posibilidades de Flex y ActionScript 3.
Para mi sorpresa fue mucho mas fácil de lo que imagine. Hacer un parser de RSS en Flash común y corriente es un dolor de muelas por no decir otra cosa. Sin embargo en Flex me encontré con la clase HTTPService la cual hace la petición al recurso de RSS y lo entrega en un fabuloso objeto, lo único que queda hacer es saber la estructura del XML y listo las referencias son tan simples como
rss.channel.item[i].title
eso me agrado bastante, el trabajo disminuyo en lugar de aumentar. Nice.
Me doy cuenta que es casi exactamente lo mismo que una aplicación común de Flash el único cambio se produce al momento de crear la interfaz gráfica (GUI), esta se crea mediante tags de XML fáciles y entendibles desde el primer ejemplo.
Esto dio como resultado que mi interés sobre Flex creciera voy a tener que meterme mas al tema.
El único inconveniente que veo es el tamaño resultante del SWF 220 Kb.. pero al saber que los usuarios que utilizan banda ancha esta creciendo, este inconveniente no creo que se convierta en un problema.
Mi primer intento en Flex resulto en esto. Repito es algo muyy sencillo.
Actualización
El url correcto es http://klr20mg.com/flex/kill.swf y se necesita el Flash Player 8.5 para poder verlo.
Coloquen el URL de un RSS y es todo..
ej. http://klr20mg.com/?feed=rss2
Me olvidaba para los curiosos que les gusta ver código este es el código completo del mxml
[as]
import mx.rpc.http.HTTPService;
import mx.rpc.event.ResultEvent
import mx.controls.List;
import mx.controls.ListEvents;
private var rss:Object;
private var theUrl:String
public function changeState(target:String, url:String):void{
if(url.length){
theUrl = url;
currentState = target;
useHttpService();
}
}
public function useHttpService():void {
var service:HTTPService = new HTTPService();
service.url = theUrl
service.addEventListener("result", httpResult);
service.send();
}
public function httpResult(obj:Object):void{
var source:Array = [];
rss = obj.result.rss
itemList.addEventListener("change", loadInfo);
for(var i:String in rss.channel.item){
var tmp:Object = {}
tmp.label = rss.channel.item[i].title
tmp.link = rss.channel.item[i].link
if(rss.channel.item[i].encoded != undefined){
tmp.data = rss.channel.item[i].encoded;
}else{
tmp.data = rss.channel.item[i].description;
}
source.push(tmp)
}
itemList.dataProvider = source
}
public function loadInfo(obj:Object){
panel1.title = "Simple RSS Reader :::: "+obj.target.selectedItem.label;
info.htmlText = obj.target.selectedItem.data;
info.htmlText += "
}
]]>
[/as]
Saludos



