Ich versuche mit ActionScript eine XML-Datei auszulesen (was auch funktioniert) und zu verarbeiten. Leider liefert mir meine Klasse immer null als Wert.
Geb ich die Variable aber in der Klasse selbst aus, stimmt der Inhalt.
Woran liegt das?
Hier der Code der Klasse:
- Code: Alles auswählen
package com {
import flash.display.MovieClip;
import flash.net.URLLoader;
import flash.events.Event;
import flash.net.URLRequest;
public class readXMLFile {
private var contentXMLUrl:String = "myxml.xml";
public var XMLContent:XMLList;
public function readXMLFile() {
var xmlLoader:URLLoader = new URLLoader();
xmlLoader.addEventListener(Event.COMPLETE, XMLloaded);
xmlLoader.load(new URLRequest(contentXMLUrl));
}
private function XMLloaded(e:Event):void {
var XMLRes:XML = new XML(e.currentTarget.data);
XMLRes.ignoreWhite = true;
// nur Elementbaum mit "myElements"
this.XMLContent = XMLRes.myElements;
// gibt mir die XMLListe aus - das klappt hier
trace(this.XMLContent);
}
}
}
So wird die Klasse aufgerufen:
- Code: Alles auswählen
import com.readXMLFile;
var foo:readXMLFile = new readXMLFile();
// hier bekomme ich null als Wert
trace(foo.XMLContent);
Die Reihenfolge der Ausgaben ist auch so, dass das zweite trace() vor der Ausgabe in der Klasse ausgeführt wird.
Das zweite trace wird also ausgeführt bevor die Klasse die XML-Datei verarbeiten konnte.
Wie schaff ich, dass mir die XML-Liste ausserhalb der Klasse zur Verfügung steht? Wo liegt hier mein Fehler?
Danke und Grüße
