如何在AS3中加载XML数据

时间:2016-02-29 22:36:59

标签: actionscript-3 flash actionscript

请帮我将ActionScript 2.0代码转换为ActionScript 3.0

这是代码:

    //***********************************************************
    var theXML:XML = new XML();
    theXML.ignoreWhite = true;
    theXML.onLoad = function() {
    var nodes = this.firstChild.childNodes;
    for (i=0;i<nodes.length;i++){
    theList.addItem(nodes[i].firstChild.nodeValue,i);
    }
    }

    theXML.load("http://localhost/conn.php");
    //***********************************************************

这是我的PHP代码, echo 是一个XML字符串:

echo "<?xml version=\"1.0\"?>\n"; 
echo "<name>\n"; 

while ( $line = mysql_fetch_assoc($res) ) 
{ echo "<item>" . $line["name"] . "</item>\n"; } 

echo "</name>\n"

使用AS3,如何将XML字符串解析为具有节点的实际XML数据?

1 个答案:

答案 0 :(得分:1)

how to work with XML in AS3how to migrate AS2 to AS3有很多例子。

这相当于你发布的内容:

var loader:URLLoader = new URLLoader();
loader.load(new URLRequest("http://localhost/conn.php"));
loader.addEventListener(Event.COMPLETE, loaderComplete);

function loaderComplete(e:Event):void {
    XML.ignoreWhitespace = true;
    var xml:XML = new XML(loader.data);
    var nodes:XMLList = xml.child(0).children();
    for (var i:int = 0; i < nodes.length(); i++) {
        theList.addItem(nodes[i].child(0).text());
    }
}

请注意,在AS3中,您可以按名称引用XML节点,例如xml.gallery.image[3].url而不是xml.child(0).children()[3].child(0)等。