AS3でDataGridの頭のよさに感動した!2分で作るRSSリーダ

ステージにボタンとDataGridコンポーネントを置いて、テキストフィールドを作ればほとんど出来たようなものです。
DataGridコンポーネントを初めて使ったんですが、XMLのバインドが驚くほど簡単で感動しました。XMLの構造をまったく知らなくても、タグ名だけ知っていれば使えるこの簡単さがすばらしいですね。その秘密はDataProviderにありました。

フレームスクリプトで全部書いてます。

import fl.controls.DataGrid
import fl.controls.ScrollBar
import fl.controls.dataGridClasses.DataGridColumn
import fl.events.ListEvent
import fl.data.DataProvider
var loader:URLLoader
var dataXml:XML
//xmlを読む
function loadXML(url):void{
var _url = new URLRequest(url)
loader = new URLLoader()
loader.addEventListener(Event.COMPLETE,dataLoad)
loader.load(_url)
}
//読み込み完了したXMLをDataProviderに入れてDataGridで表示
function dataLoad(e:Event):void{
dataXml = new XML(loader.data)
var dp:DataProvider = new DataProvider(dataXml)
myDataGrid.dataProvider = dp
}
//ボタンを押すとRSSを読む
myBtn.addEventListener(MouseEvent.CLICK,clickfunc)
function clickfunc(e:MouseEvent):void{
loadXML("http://ryow.net/blog_old/atom.xml")
}
//DataGridの設定
myDataGrid.columns = ["title","summary"]
myDataGrid.addEventListener(ListEvent.ITEM_CLICK,dgEvent)
//DataGridのアイテムをクリックしたらタイトルを表示
function dgEvent(e:ListEvent):void{
my_txt.text = e.item.title
}

今回はXMLの方は考えた設計にしてなかったんですが、↑の方法であればXMLのタグの中身をcolumnsにそのまま割り当てて、何も考えずに取得できます。ただ、タグのアトリビュートで表示してるときはちょっと面倒かも。というか調べてないだけなので簡単に出来るのかもしれません。
とにかく、XMLの形がキレイで、すべての情報はタグの中にあるのなら、その表示アプリは2分あれば余裕で作れる、ということですね。

この記事には、カテゴリ AS3 タグは がつけられています。