単純に Web 上にある XML データをロードしたい場合は、 mx:HTTPService と mx:DeataGrid の dataProvider 属性を使って以下のように簡単にできる。
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="xmldata.send()" layout="absolute"> <mx:HTTPService id="xmldata" url="http://blog.enjoitech.jp/upload/33_datagrid.xml" useProxy="false"/> <mx:Panel title="xml data"> <mx:DataGrid id="dgUser" dataProvider="{xmldata.lastResult.users.user}"> <mx:columns> <mx:DataGridColumn headerText="Name" dataField="name" /> <mx:DataGridColumn headerText="Gender" dataField="gender" /> </mx:columns> </mx:DataGrid> </mx:Panel> </mx:Application>
もし POST データを渡して動的に変化する値を取得するには。
まず mx:HTTPService に mx:request ノードを追加して、 request データを送信するように変更すればいい。
また、以下のようにすると post データのレスポンスを確認してから xml データをロードする事もできる。
まず、 HTTPService に result 属性を追加して、レスポンス時のイベントハンドラーを指定する。
<mx:HTTPService result="onXmlHttpResponse(event);" id="xmldata" url="http://blog.enjoitech.jp/upload/33_datagrid.xml" useProxy="false"/>
次にこのイベントハンドラーを実装する。
<mx:ScriptHgt; <![CDATA[ public function onXmlHttpResponse(event:ResultEvent):void { var source:ArrayCollection = event.result.users.user as ArrayCollection; dgUser.dataProvider = source; } ]]Hgt; </mx:ScriptHgt;
そんな感じ。
にしても Flex は情報少ないな。
一部のマニアがどかっと公開してくれてるけど。