2017-03-28 6 views
1

Ich habe eine sehr spezifische Aufgabe, und ich kann nicht scheinen, damit es funktioniert. Ich habe eine Animate-Datei mit einem Grafiksymbol (benannte Hilfe), das einen dynamischen Textbereich (namens help_txt) mit etwas Text enthält. Ich möchte es mit einer externen XML-Datei ändern. Meine XML-Datei sieht wie folgt aus:Dynamischen Text mit externer XML-Datei ändern

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

ich eine externe XML-Datei in der folgenden Art und Weise hochgeladen:

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; 
}  
nach Aufruf der load Methode für Event.COMPLETE auf der URL Loader

Antwort

0

Sie fügen den Ereignis-Listener Klasse. Sie sollten zuerst den Ereignis-Listener hinzufügen und dann die load-Methode aufrufen.

Auch müssen Sie nur auf myXml.first zugreifen, und das sollte den benötigten Text zurückgeben.

Code unten aktualisiert:

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; 
}  

Außerdem sollten Sie Ihre Ereignis-Listener entfernen, sobald die XML geladen wird. Sehen Sie sich auch einige Fehler an, die Ereignis-Listener behandeln, um Fehlerszenarien zu behandeln.

Hoffe, das hilft. Vielen Dank.

+0

Vielen Dank. Ich habe getan, was Sie vorgeschlagen haben und fügte auch Fehlerbehandlung Ereignis-Listener hinzu und es funktionierte perfekt. myLoader.addEventListener (IOErrorEvent.IO_ERROR, onError); Funktion onError (e: IOErrorEvent): void { // Tun Sie nichts } – KateMD

Verwandte Themen