[ActionScript]Adobe Animate CC動作中讀取XML資料

Adobe,Animate CC,ActionScript,URLRequest,URLLoader,XML,XMLLIST

專案目的:於Adobe Animate CC 中 透過ActionScript 把物件參數設定為動態(連結外部XML)

範例1程式碼如下:

import flash.events.Event;
import flash.net.*;

var xobj: XML = new XML(); //XML物件宣告
xobj.ignoreWhite = true; //預設為false

var filepath: String = "C:\\Users\\\Ting I\\Desktop\\test.xml"; //本機路徑或是URL皆可

var request: URLRequest = new URLRequest(filepath);
var loader: URLLoader = new URLLoader(request);
loader.addEventListener(Event.COMPLETE, xmlLoaded); //第二個參數為對應的function名稱

function xmlLoaded(e: Event): void {
    xobj = XML(loader.data);
    trace("xml資料為:" + loader.data); //xml的全部資料內容    
    trace(xobj.item[0].name.toXMLString());  //把該行的XML格式做顯示
    trace("第" + xobj.item[0].attribute("id") + "個網站名稱:" + xobj.item[0].name.toString() +  ",網址為:" + xobj.item[0].url.toString());  //attribute及innertext顯示
}

test.xml程式碼內容如下:

    <menuItem> 
        <item id='2'> 
            <name>臉書</name> 
            <url>https://www.facebook.com</url> 
        </item> 
    </menuItem>

測試結果畫面如下:

範例2:改寫範例1為透過XMLList類別存取所有子節點進行輸出

程式碼如下:

import flash.events.Event;
import flash.net.*;

var xobj: XML = new XML(); //XML物件宣告
xobj.ignoreWhite = true; //預設為false

var filepath: String = "C:\\Users\\\Ting I\\Desktop\\test.xml"; //本機路徑或是URL皆可

var request: URLRequest = new URLRequest(filepath);
var loader: URLLoader = new URLLoader(request);
loader.addEventListener(Event.COMPLETE, xmlLoaded); //第二個參數為對應的function名稱

function xmlLoaded(e: Event): void {
    xobj = XML(loader.data);
    var nodes:XMLList = xobj.children();  //讀取根節點
    trace("根節點下的子節點數" + nodes.length() + "個" + "\n");
    for(var i:int = 0 ; i < nodes.length(); i++)
    {
        trace("第" + nodes[i].attribute("id") + "個網站");
        trace("名稱:" + nodes[i].child(0).toString())
        trace("網址:" + nodes[i].child(1).toString() + "\n");
    }
}

test.xml的內容修改如下:

    <menuItem>
        <item id='1'> 
            <name>谷歌</name> 
            <url>https://www.google.com</url> 
        </item> 
        <item id='2'> 
            <name>臉書</name> 
            <url>https://www.facebook.com</url> 
        </item>        
    <item id='3'> 
            <name>奇摩</name> 
            <url>https://tw.yahoo.com</url> 
        </item> 
    </menuItem>

測試結果畫面如下:

參考來源:https://help.adobe.com/zh_TW/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7ff5.html