
我們在Flah Builder (Flex)中,可以透過HttpService類別來幫忙
import mx.collections.ArrayCollection;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.http.mxml.HTTPService;
import mx.controls.Alert
private var myHttpService:HTTPService=new HTTPService
private function ini():void
{
myHttpService.url='../syss.xml'
myHttpService.send();
myHttpService.addEventListener(ResultEvent.RESULT,loaderCompleteHandler);
myHttpService.addEventListener(FaultEvent.FAULT,loaderErrorHandler);
}
private function loaderCompleteHandler(event:ResultEvent):void
{
var tmp:ArrayCollection=event.result.root.data as ArrayCollection
}
private function loaderErrorHandler(event:FaultEvent):void
{
Alert.show('資料載入失敗...')
}
當XML載入成功後,會觸發loaderCompleteHandler函式,這個函式會帶來一個event參數(ResultEvent型態),利用此物件,可透過階層的方式讀取XML的資料,以此為例 event.result.root.data 。回傳回來的資料由debug環境來看,已經自動幫您轉換成ArrayCollection型態物件。
不過有一點需要注意的是,此方法是用於資料數目大於一筆的情況,flex才會自動幫您轉換,如果只有一筆,由debug來監看得知,若只有一筆資料,直接讀取資料即可,程式碼如下:
var myBeginDate:String;
myBeginDate:String =event.result.root.data.活動起日;
所以您可先利用event.result.root.data.length 判斷筆數。
沒有留言:
張貼留言