2012年4月13日 星期五

URLLoader讀取3種資料格式(一)文字格式



URLLoader分為3種格式(1).文字 (2).URL編碼 (3).二進位資料byteArray
要判斷返回資料是哪種格式可以使用URLLoader的屬性dataFormat來做判斷..

1.URLLoaderDataFormat.TEXT(文字,xml)
2.URLLoaderDataFormat.VARIABLES(URL編碼格式變數)
3.URLLoaderDataFormat.BINARY(二進位資料)

-------------------------------- URLLoader會發出6種事件---------------------------------

1.Event.OPEN                                                  load()方法一使用則觸發事件
2.ProgressEvent.PROGRESS                           載入過程中接收下載位元資訊
3.Event.COMPLETE                                        載入完成時觸發
4.HTTPStatusEvent.HTTP                                載入完成或是失敗之前會發出HTTP狀態事件
5.IOErrorEvent.IO_ERROR                             載入失敗
6.SecurityErrorEvent.SECURITY_ERROR      載入內容不符合安全性規則

package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;

/**
* ...
* @author Ray Cheng
*/
public class Main extends Sprite
{
private var _urlLoader:URLLoader;
private var _urlReqest:URLRequest;

public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}

private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
create();
}

private function create():void
{
_urlLoader = new URLLoader();
_urlLoader.addEventListener(Event.COMPLETE, onURLCompleteHandler);

//---當連接外部伺服器或是網路資料時,使用try catch是穩健的做法
try {

_urlLoader.load(new URLRequest("portPageList.xml"));

}catch(e:Error){

trace("錯誤訊息"+Error)

}


}

private function onURLCompleteHandler(e:Event):void
{
//---需要new一個新的對應資料型別來接收data資訊
var $xml:XML = new XML(e.target.data);
var $xmlList:XMLList=$xml.year.item.logo

//---找出XMLlist標單內所有<logo>鍵值
for each(var logo:XML in $xmlList) {

trace(logo)

}

//---判斷資料型別,總共有3種(1)預設utf8文字(2)URL編碼變數格式post,get(3)二進位資料格式byteArray
trace(e.target.dataFormat)
}

}

}

沒有留言:

張貼留言

我的留言版