En este Tip veremos cómo podemos crear un Lector de RSS con Flash CS3. Tengan en cuenta que es un ejemplo básico, que pueden extender haciendo uso de clases (que permitan, por ejemplo, modificar los estilos).
Anteriormente Zah ya publicó otro tip sobre un lector de RSS en Flex 2 en Actionscript 3, en el que se explica la sintaxis E4X de ActionScript 3 (que también utilizo en este tip).
Antes que nada cabe mencionar que este lector fue creado utilizando como base RSS 2.0 y no ha sido probado en versiones anteriores, por lo que puede haber errores.
El código es el siguiente:
Código :
function readRSS(feedURL:String, outputField:TextArea):void
{
var feedLoader:URLLoader = new URLLoader();
feedLoader.addEventListener(Event.COMPLETE, parseFeed);
feedLoader.load(new URLRequest(feedURL));
}
Código :
function parseFeed(event:Event):void
{
var feedXML:XML = new XML(event.target.data);
var mainTitle:String = feedXML.channel.title;
var mainLink:String = feedXML.channel.link;
var mainDescription:String = feedXML.channel.description;
outputField.htmlText = "<a href='" + mainLink + "'>" + "<b>" + "<font color = '#006699' size = '14'>" + mainTitle + "</font>" + "</b>" + "</a>";
outputField.htmlText += "<font color = '#006699'>" + mainDescription + "</font>";
outputField.htmlText += "<p></p>";
for each(var item:XML in feedXML..item)
{
var itemTitle:String = item.title.toString();
var itemDescription:String = item.description.toString();
var itemLink:String = item.link.toString();
var rssContent:XMLList = new XMLList();
rssContent += toHtml(itemTitle, itemDescription, itemLink);
XML.prettyPrinting = false;
outputField.htmlText += rssContent.toXMLString();
}
}
Código :
function toHtml(itemTitle, itemDescription, itemLink):XMLList
{
var output:XMLList = new XMLList();
output += new XML("<font color = '#006699'>" + "<a href='" + itemLink + "'>" + "<b>" + itemTitle + "</b>" + "</a>" + "</font>");
output += new XML("<br>" + "<p>" + itemDescription + "</p>" + "</br>");
output += new XML("<p></p>");
return output;
}
Código :
readRSS("URLdelFeed", ObjetoQueContendraLosDatos);
Código :
readRSS("http://www.cristalab.com/rss.php", outputField);