使用外部xml文件更改动态文本

时间:2017-03-28 06:23:01

标签: xml actionscript-3

我有一项非常具体的任务,我似乎无法使其发挥作用。 我有一个带有图形符号(名为help)的Animate文件,其中包含一个动态文本区域(名为help_txt),其中包含一些文本。我想用外部xml文件更改它。 我的Xml文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<frame>
    <first>Begin your adventure here.</first>
    <second>We continue here</second>
</frame>    

我通过以下方式上传了外部XML文件:

var myXml:XML = new XML();  
myXml.ignoreWhite = true;  
var myLoader:URLLoader = new URLLoader();  
myLoader.load(new URLRequest("test_eng.xml"));  
myLoader.addEventListener(Event.COMPLETE, processXML)  
function processXML(e:Event):void {  
    myXml = new XML(e.target.data);  
    parsFramText();  
}  
function parsFramText(){  
    help_txt.text = myXml.first.text;  
}    

1 个答案:

答案 0 :(得分:0)

在URL Loader类上调用Event.COMPLETE方法后,您正在为load添加事件侦听器。您应首先添加事件侦听器,然后调用load方法。

此外,您只需访问myXml.first即可返回所需的文字。

更新了以下代码:

var myXml:XML = new XML();  
myXml.ignoreWhite = true;  
var myLoader:URLLoader = new URLLoader();  
myLoader.addEventListener(Event.COMPLETE, processXML);
myLoader.load(new URLRequest("test_eng.xml"));  

function processXML(e:Event):void {  
    myXml = new XML(e.target.data);  
    myLoader.removeEventListener(Event.COMPLETE, processXML);
    parsFramText();  
}

function parsFramText():void{  
    help_txt.text = myXml.first;  
}    

此外,您应该在加载XML后删除事件侦听器。请查看一些错误处理事件侦听器,以便处理故障情形。

希望这会有所帮助。感谢。