Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-07-2010, 20:59   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Beiträge: 33
Klassen, EventListener und Rückgaben - wie macht man's richtig???

Hallo,

ich hab ein recht grundsätzliches - und wahrscheinlich anfängermäßiges Problem:

Ich habe eine Klasse, die ein XML läd, dieses auswertet und dann ein Array mit Daten zurückgeben soll. Allerdings bekomme ich nicht hin, dass er alles nacheinander ausführt und mir erst danach die Daten zurückgibt. Bei mir feuert er den Rückgabewert schon immer zu früh ab, bevor das XML gelesen wurde. Wie macht man so was richtig?

PHP-Code:
public function connect():Array{
                    
    var 
result : Array;
    
myLoader = new URLLoader();
    
myURL = new URLRequest("daten.xml");
    
myLoader.load(myURL);
    
myLoader.addEventListener(Event.COMPLETExml_lesen);
    
result=irgeneineArrayVariable;
    return 
result;
}
    
public function 
xml_lesen(evt:Event):void{

    
XML.ignoreComments true;   
    
XML.ignoreWhitespace true;
    
myXML = new XML(evt.target.data); 
                    
        for (var 
i:int 0i<300i++){
            
irgeneineArrayVariable[i]=myXML.item[i];
        }
                    


Dankeschön!

Robert
robertineurope ist offline   Mit Zitat antworten
Alt 20-07-2010, 21:35   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
Code:
var result : Array;
var myXML:XML;

// Call from constructor
private function initialize():void
{
    connect();
}

public function connect():void{ 
    myLoader = new URLLoader(); 
    myURL = new URLRequest("daten.xml"); 
    myLoader.addEventListener(Event.COMPLETE, xml_lesen); 
    myLoader.load(myURL); 
} 
     
public function xml_lesen(evt:Event):void {
    XML.ignoreComments = true;    
    XML.ignoreWhitespace = true; 

    myXML = new XML(evt.target.data);  

    for (var i:int = 0; i<300; i++){ 
        result[i] = myXML.item[i]; 
    }

    next();
}

function next():void
{
    trace(result);
}
Eine schnelle Lösung... aber es ist nicht gut mit den fixen 300.
Omega Psi ist offline   Mit Zitat antworten
Alt 20-07-2010, 21:37   #3 (permalink)
öcher flasher
 
Benutzerbild von rady
 
Registriert seit: Feb 2008
Beiträge: 266
Hi,

das ist klar, du fängst dein result ja wahrscheinlich schon früher ab, bevor die xml überhaupt geladen ist.

Also ich habe 3 Tipps für dich:

1. Eine Klasse zum Lesen von XML zu bauen ist ein wenig überflüssig. Bau das direkt in deine Dokumentenklasse ein und wenn dann die XML geladen ist, kannst du auch schön auf die Daten zugreifen.

2. Wenn du unbedingt mit einer Klasse arbeiten willst, musst du dafür ein eigene Event Klasse bauen, die ein Event abfeuert sobald die XML geladen ist.

3. Manche Menschen haben sich schon die Mühe gemacht und solch eine Klasse geschrieben, nimm einfach diese:
Ein Klassiker ist: bulk-loader - Project Hosting on Google Code

Mein neuester Favorite ist aber:
LoaderMax – Smart AS3 Loading GreenSock

Geändert von rady (20-07-2010 um 21:43 Uhr)
rady ist offline   Mit Zitat antworten
Alt 20-07-2010, 21:49   #4 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Beiträge: 33
Danke!!

Ihr seid die Besten!

Danke für die coolen Ressourcen! Und die Hilfe.

Ich habe das jetzt erst einmal über ein eigenes Event gelöst, das ich nach der Schleife setze und von Aussen abfragen kann.

Die Idee mit den fertigen Bibliotheken ist natürlich auch ganz verführerisch.
Aber mann ist ja ehrgeizig

Gute Nacht, und vielen Dank.

Robert
robertineurope ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Instanzieren ohne Klassen?!? (MXP Erweiterung macht Probleme) darki777 Flash 8 0 24-10-2007 17:27
Wie werden Klassen richtig imporiert bobo_k1 Flash 8 1 04-03-2006 15:24
Css: mal wieder IE <> FF, wer macht was richtig? Samuel HTML und CSS 12 01-12-2004 12:09
Wie macht mans richtig ?? sandy22 Flash 4 und Flash 5 14 25-07-2002 09:14
Buttons: wie macht man richtig? dsolianyi Flash 4 und Flash 5 4 12-08-2001 19:13


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:51 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele