05.25
本來從今天起想寫一些Flash CS3的新功能,但是礙於保密條約所以還是等正式上市有試用版以後再來寫吧,誰叫我是個守法的好國民(笑),那今天順便來談談如何在Flex中取用XML好了,這源自於Flex班上一個同學的問題,他覺得用<mx:HtppService>標籤來抓取XML檔還不夠過癮,想直接用ActionScript 3.0來讀取是否可以,答案當然是肯定的,有圖有真相,下圖就是我用ActionScript 3.0抓回來的XML檔,並交由DataGrid來呈現。

在以前純ActionScript 3.0的那個時代,我會使用Loader來讀取資料,但是由於這個主題是Flex,那當然直接用Flex寫好的HttpService Class囉,幹麻沒事欺負自己的手指頭,整個寫法其實跟之前上課所Demo過的<mx:HttpService>的觀念是一模一樣的,所以我就不多加描述了,請看倌自行看code吧。
import mx.rpc.events.ResultEvent;
import mx.collections.ArrayCollection;
import mx.rpc.http.HTTPService;
[Bindable]
private var xmlData:ArrayCollection;
private var myHttp:HTTPService;
private function initApp():void{
myHttp=new HTTPService();
myHttp.url="assets/sandwichData.xml";
myHttp.addEventListener(ResultEvent.RESULT,xmlHandler);
myHttp.send();
}
private function xmlHandler(event:ResultEvent):void{
xmlData=event.result.sandwichMenu.sandwich;
}
]]>
執行完的結果是正確的,這樣一來是否就能直接由ActionScript 3.0來驅動HtppService呢?
相關文章:
文章內容由宋志峰[ANISTAR]撰寫,引用分享請以鏈結形式註明出處與原始作者。


非常感謝你~我已經解決了!!!
Dear 填小姐:
不建議你用Array喔,最好是使用ArrayCollection。
不好意思,請問一下,我現在在做一個選課系統,
我將開課的科目列在List(而且是用陣列寫的)上,
如何利用新增的按扭新增到DataGrid 上,
可否請你示範一個提供我們做參考…謝謝你囉!