2017-03-28 88 views
1

我有一個非常具體的任務,我似乎無法使其工作。 我有一個帶有圖形符號(名爲help)的Animate文件,其中包含一個帶有文本的動態文本區域(名爲help_txt)。我想用外部xml文件改變它。 我的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; 
}  

回答

0

您所呼叫的load方法上的URL裝載機後面添加的事件偵聽Event.COMPLETE類。您應該先添加事件偵聽器,然後調用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裝載你應該刪除你的事件偵聽器。請仔細研究一些錯誤處理事件偵聽器,以便處理故障情況。

希望這會有所幫助。謝謝。

+0

非常感謝。我做了你的建議,並添加了錯誤處理事件監聽器,它完美運行。 myLoader.addEventListener(IOErrorEvent.IO_ERROR,onError); function onError(e:IOErrorEvent):void { //什麼都不做 } – KateMD