<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
initialize="loadXML()"
width="100%" height="100%"
paddingLeft="5" paddingRight="5" paddingBottom="5" paddingTop="5"
horizontalAlign="left"
layout="vertical" viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
import mx.formatters.DateFormatter;
import flash.net.navigateToURL;
import mx.collections.XMLListCollection;
[Bindable]
private var externalXML:XMLListCollection;
private function loadXML():void {
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("http://weblogs.macromedia.com/mxna/xml/rss.cfm?query=byCategory&languages=1&categoryId=5");
loader.load(request);
loader.addEventListener(Event.COMPLETE, onComplete);
}
private function onComplete(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
var qnItems:QName = new QName(mxna, "item");
var dataXML:XML = XML( loader.data );
dataXML.addNamespace( mxna );
var base:XMLList = dataXML.descendants( qnItems );
externalXML = new XMLListCollection( base );
}
private var mxna:Namespace = new Namespace("http://purl.org/rss/1.0/");
private var dc:Namespace = new Namespace("http://purl.org/dc/elements/1.1/");
[Bindable]
private var qnTitle:QName = new QName(mxna, "title");
[Bindable]
private var qnLink:QName = new QName(mxna, "link");
[Bindable]
private var qnDescription:QName = new QName(mxna, "description");
[Bindable]
private var qnCreator:QName = new QName(dc, "creator");
[Bindable]
private var qnDate:QName = new QName(dc, "date");
[Bindable]
private var qnSubject:QName = new QName(dc, "subject");
private function getField( itemXML:XML, field:QName ):String {
if( field == qnDate ) {
var df:DateFormatter = new DateFormatter();
df.formatString = "(YYYY.MM.DD)";
return df.format( itemXML.descendants( field ).toString() );
}
return itemXML.descendants( field ).toString();
}
private function processURL( url:String ):void {
var request:URLRequest = new URLRequest(url);
navigateToURL( request );
}
]]>
</mx:Script>
<mx:Panel layout="vertical"
title="Adobe MXNA Flex Feed"
width="100%" height="100%"
paddingLeft="5" paddingRight="5" paddingBottom="5" paddingTop="5">
<mx:Repeater width="100%"
id="newsItems"
dataProvider="{ externalXML }">
<mx:VBox width="100%" horizontalAlign="left" creationCompleteEffect="Fade">
<mx:LinkButton id="lbtn"
textAlign="left"
label="{ getField( XML( newsItems.currentItem ), qnTitle ) }"
click="processURL( getField( XML( event.currentTarget.getRepeaterItem() ), qnLink ) )" />
<mx:TextArea paddingLeft="10" paddingRight="10" editable="false"
width="98%" cornerRadius="6" height="50"
backgroundColor="0xFAFAFA"
htmlText="{ getField( XML( newsItems.currentItem ), qnDescription ) }" ></mx:TextArea>
<mx:Text paddingRight="10"
width="98%"
textAlign="right"
text="{ getField( XML( newsItems.currentItem ), qnCreator ) + ' ' + getField( XML( newsItems.currentItem ), qnDate ) + ' ' + getField( XML( newsItems.currentItem ), qnSubject ) }" />
</mx:VBox>
</mx:Repeater>
</mx:Panel>
</mx:Application>