Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-08-2004, 08:05   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Ort: Hamburg
Beiträge: 34
Question Zusammengesetzte variable in "for in" schleife?

Moinsen,

ich sitze hier gerade vor einem Problem und komm nicht drauf.
ich versuche ein Navigation einzuladen und das script erkennen zu lassen wieviele Menupunkte vorhanden sind. Hier mal das script:

PHP-Code:
LV = new LoadVars();
LV.onLoad = function(suc) {
    if (
suc == true) {
        
_root.L1 1;
        for (var 
i1 in this) {
            if (
i1 != 'onLoad' && i1.charAt(1) == 1) {
                
_root.L1++;
            }
        }
        for (
p=1p<(L1+1); p++) {
            
this["L2"+p] = 1;
            for (
this["i2"+pin this) {
                if (
this["i2"+p] != 'onLoad' && this["i2"+p].charAt(1) == && this["i2"+p].charAt(4) == p) {
                    
this["L2"+p]++;
                }
            }
        }
    }
};
LV.load("menu.txt"); 
in der zweiten "for in" schleife will ich mit der variable p das zweite Level der Navigation durchzählen. Das Problem ist das Actionscript es nicht erlaubt die Variable in der "for in" schleife zusammenzusetzen. also das hier:
PHP-Code:
for (this["i2"+pin this) {

normaler funktioniert das mit this[]. früher ging das noch mit eval() aber hier funktioniert das irgendwie nicht. Hat irgenjemand ne Idee wie ich das schreiben muss, damit sich das Script die Variable selber zusammenbauen kann.
Wäre voll cool wenn mir jemand helfen kann. Hoffe ich habe es nicht zu umständlich erklärt...
gardeler ist offline   Mit Zitat antworten
Alt 19-08-2004, 08:41   #2 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
Hi,

hmm, this["L2"+p] = 1; müsste doch gehen, trace das mal.
Aber warum willst du eine Variable in der for in-Schleife.?!
Brauchst du diese danach noch? Das Inkrement auf this["L2"+p] geht doch auch so...

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 19-08-2004, 09:14   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Ort: Hamburg
Beiträge: 34
Danke für die schnelle antwort erstmal.

Die Zeile funktioniert ja auch. Damit hab ich keine Probleme.

Das Problem liegt ja in der "for in" schleife. Da funktioniert das Inkrement nicht. Wenn du das mal in ein Flash reinkopierst gibt der dir genau da einen Fehler an.
ich schreib das script mal so kurz auf das es nicht zusammengefügt ist:
PHP-Code:
LV = new LoadVars();
LV.onLoad = function(suc) {
    if (
suc == true) {
        
L1 1;
        for (var 
i1 in this) {
            if (
i1 != 'onLoad' && i1.charAt(1) == 1) {
                
L1++;
            }
        }
        
// DIESE SCRIPTE SOLLEN ZUSAMMENGEFÜGT WERDEN:
        
L21 1;
        for (
i21 in this) {
            if (
i21 != 'onLoad' && i21.charAt(1) == 2) {
                
L21++;
            }
        }
        
L22 1;
        for (
i22 in this) {
            if (
i22 != 'onLoad' && i22.charAt(1) == 2) {
                
L22++;
            }
        }
        
L23 1;
        for (
i23 in this) {
            if (
i23 != 'onLoad' && i23.charAt(1) == 2) {
                
L23++;
            }
        }
        
L24 1;
        for (
i24 in this) {
            if (
i24 != 'onLoad' && i24.charAt(1) == 2) {
                
L24++;
            }
        }
        
// USW...
        // BIS HIER !
    
}
};
LV.load("menu.txt"); 
Die Scripte die zusammengefasst werden sollen habe ich auskommentiert.
Das sollte doch mit einer "for" schleife funktionieren. Die L2x Variable is kein Problem zusammenzubauen. Das funktioniert auch. Nur klappt das nicht bei der i2x variable (in der "for in" schleife).
gardeler ist offline   Mit Zitat antworten
Alt 19-08-2004, 09:26   #4 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
ja, das habe ich verstanden.

Meine Frage ist aber: brauchst du i21 bis i24 später nochmal?

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 19-08-2004, 09:33   #5 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Ort: Hamburg
Beiträge: 34
Oh sorry, hatte ich falsch verstanden.
eigentlich brauche ich die i2x variablen nicht mehr. Mir sind nur die L2x Variablen wichtig, weil das ja die ausgezählten Menupunkte sind. Aber ich möchte nicht so einen ellenlangen Code haben. Oder geht das noch irgendwie anders?

Grüße
Jens
gardeler ist offline   Mit Zitat antworten
Alt 19-08-2004, 10:00   #6 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
dann nimm doch immer die gleiche Var in der for in Schleife

ActionScript:
  1. for (p=1; p<(L1+1); p++) {
  2.             this["L2"+p] = 1;
  3.             for (q in this) {
  4.                 if (q != 'onLoad' && q.charAt(1) == 2 && q.charAt(4) == p) {
  5.                     this["L2"+p]++;
  6.                 }
  7.             }
  8.         }
  9. }

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 19-08-2004, 10:12   #7 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Ort: Hamburg
Beiträge: 34
Thumbs up

Genial!!!! Es klappt.
Danke dir ludabruda.

Grüße

Jens
gardeler 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 12:17 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele