Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 30-07-2008, 10:20   #1 (permalink)
Neuer User
 
Benutzerbild von aSmith
 
Registriert seit: Mar 2008
Ort: Freiburg
Beiträge: 8
XML Daten und _global.variable

Hi zusammen,

ich komm grad irgendwie nicht mehr weiter. Ich rufe die Funktion LoadXML() auf und versuche in dieser die _global.ProductGroups mit Inhalt zu füllen. Das funktioniert auch alles wunderbar bloß nur innerhalb der Funktion, ich dachte eigentlich die _global Variablen sind von überall aus ansprechbar und dementsprechend auch veränderbar. Irgendwie hab ich da was mit den Gültigkeitsbereichen nicht gerafft.

Wieso ist die _global.ProductGroup innerhalb der Schleife mit Inhalt gefüllt und außerhalb nicht?

Vielen Dank für die Hilfe.

PHP-Code:
_global.ProductGroups = new Array();
_global.Settings = new Array();


//XML Daten Verarbeiten
function LoadXML(){
    var 
XMLdaten = new XML(); 
    
XMLdaten.ignoreWhite=true
    
XMLdaten.load("XML/flashteaser_sample.xml"); 
    
XMLdaten.onLoad = function(success) { 
        if(
success){
             
            for(var 
i=0XMLdaten.firstChild.childNodes.length-1i++){
            
_global.Settings.push(XMLdaten.firstChild.childNodes[i].firstChild);
            }

            
_global.NumberProducts XMLdaten.firstChild.childNodes[3].childNodes.length
            

            
for(var z0XMLdaten.firstChild.childNodes[3].childNodes.lengthz++){
                for(var 
i=0XMLdaten.firstChild.childNodes[3].childNodes.lengthi++){

                    
_global.ProductGroups.push(XMLdaten.firstChild.childNodes[3].childNodes[z].childNodes[i].firstChild);
                    
trace(ProductGroups.length);
                }
            }
        }
    }
}

LoadXML();

trace (_global.ProductGroups.lengt); 
aSmith ist offline   Mit Zitat antworten
Alt 30-07-2008, 11:24   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Wieso ist die _global.ProductGroup innerhalb der Schleife mit Inhalt gefüllt und außerhalb nicht?
Weil das eine asynchrone Funktion ist! Das Script wird nicht von oben nach unten abgearbeitet, denn der onLoad-Callback wird ja erst gefeuert, wenn Daten angekommen sind. Und das kann beliebig spät passieren, aber auf jeden Fall erst nach dem letzten trace (da hast du übrigens "lengt" statt "length" stehen). Das hat dann auch nichts damit zu tun, dass das globale Variablen sind...

Du kannst auf die XML-Daten also erst im onLoad-Handler oder später zugreifen, bspw.:
PHP-Code:
_global.ProductGroups = new Array();
_global.Settings = new Array();


//XML Daten Verarbeiten
function LoadXML(){
    var 
XMLdaten = new XML(); 
    
XMLdaten.ignoreWhite=true
    
XMLdaten.load("XML/flashteaser_sample.xml"); 
    
XMLdaten.onLoad = function(success) { 
        if(
success){
             
            for(var 
i=0XMLdaten.firstChild.childNodes.length-1i++){
            
_global.Settings.push(XMLdaten.firstChild.childNodes[i].firstChild);
            }

            
_global.NumberProducts XMLdaten.firstChild.childNodes[3].childNodes.length
            

            
for(var z0XMLdaten.firstChild.childNodes[3].childNodes.lengthz++){
                for(var 
i=0XMLdaten.firstChild.childNodes[3].childNodes.lengthi++){

                    
_global.ProductGroups.push(XMLdaten.firstChild.childNodes[3].childNodes[z].childNodes[i].firstChild);
                    
trace(ProductGroups.length);
                    
_root.weiter();
                }
            }
        }
    }
}

LoadXML(); 

function 
weiter(){
   
trace("ProductGroups.length="+ProductGroups.length);

  Mit Zitat antworten
Alt 30-07-2008, 11:40   #3 (permalink)
Neuer User
 
Benutzerbild von aSmith
 
Registriert seit: Mar 2008
Ort: Freiburg
Beiträge: 8
ok das klingt doch ziemlich logisch.

besten Dank für die Hilfe!
aSmith 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



Alle Zeitangaben in WEZ +1. Es ist jetzt 13:53 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele