在 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";                    
            }
        }                
        
    }
    
}

程式執行畫面

2010-11-21_104736

 

檔案下載:xml.zip ( FlashDevelop AS3 Project )

參考網站:http://flexcomps.wordpress.com/2008/09/23/as3-xml-loader-utility-class/

iammic 發表在 痞客邦 PIXNET 留言(0) 人氣()