在 Action Script 3.0 中,XML 已經不提供 load function, 取而代之是透過 URLLoader 與
URLRequest 來取得 XML 資料字串,再利用 XML() 將字串轉成 XML Object。
程式範例:
data.xml
<data>
<website>
<name>plurk</name>
<url>http://www.plurk.com</url>
</website>
<website>
<name>pchome</name>
<url>http://www.pchome.com.tw</url>
</website>
<website>
<name>yahoo</name>
<url>http://www.yahoo.com.tw</url>
</website>
</data>
程式碼:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.text.TextFieldType;
public class Main extends Sprite
{
//載入 data.xml 檔案
private var xmlLoader:URLLoader = new URLLoader(new URLRequest("data.xml"));
private var xmlData:XML;
private var display:TextField = new TextField();
public function Main():void
{
//建立 XML COMPLETE 事件
xmlLoader.addEventListener(Event.COMPLETE, onXMLLoaded);
display.x = 0;
display.y = 0;
display.height = 480;
display.width = 6480;
display.type = TextFieldType.DYNAMIC;
display.selectable = false;
addChild(display);
}
public function onXMLLoaded(evt:Event):void
{
xmlData = XML(xmlLoader.data.toString());
//顯示 data.xml 中的 website 資料
for (var i:int = 0; i < xmlData.website.length(); i++ ) {
display.text = display.text + xmlData.website[i].name + "\n";
display.text = display.text + xmlData.website[i].url + "\n\n";
}
}
}
}
程式執行畫面
檔案下載:xml.zip ( FlashDevelop AS3 Project )
參考網站:http://flexcomps.wordpress.com/2008/09/23/as3-xml-loader-utility-class/
全站熱搜