0

因此,我正在尝试学习如何使用 XML 和 PHP 来检索我的 flash 文件的服务器信息。我已经让它工作了。它提取信息并将其显示在我的 swf 文件中,但它仍然具有 XML 节点。

<itemm>example</itemm>

也许有人可以帮助我弄清楚我做错了什么。我很确定我错过了 try 块中的某些内容。这是我的 as3 代码:

var txtFld:TextField = new TextField();
txtFld.width = 500;
txtFld.height = 500;
txtFld.multiline = txtFld.wordWrap = true;
addChild(txtFld);

var req:URLRequest = new URLRequest("test.php");

var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(IOErrorEvent.IO_ERROR, onIOError, false, 0, true);
urlLoader.addEventListener(Event.COMPLETE, onComplete, false, 0, true);

urlLoader.load(req);

function onIOError(evt:IOErrorEvent):void {
    txtFld.text = "XML load error. \n" + evt.text;
}

function onComplete(evt:Event):void {
    urlLoader.removeEventListener(IOErrorEvent.IO_ERROR, onIOError);
    urlLoader.removeEventListener(Event.COMPLETE, onComplete);

    try {
        var loadedXML:XML = new XML(evt.target.data);
        txtFld.text = loadedXML.itemm;

} catch (err:Error) {
    txtFld.text = "XML parse error:\n" + err.message;
}
}
4

1 回答 1

3

换行试试:

txtFld.text = loadedXML.itemm;

...对于这个:

txtFld.text = loadedXML.itemm.text();

您必须记住,loadedXML.itemm 将返回一个 XMLList,而不是 XML。那是因为您使用该语句执行的实际上是“给我所有 itemm 类型的节点”。

您可以在此处查看 XMLList 的方法 text() 的文档:http: //help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/XMLList.html#text()

如果您的loadedXML 包含多个item 类型的节点,text() 将返回带有items 文本内容的XMLList 列表。如果要单独处理文本内容,可以执行以下操作:

for each(var itemm:XML in loadedXML.itemm.*) {
    trace(itemm.text());
}
于 2013-10-23T09:18:01.117 回答