Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-06-2007, 14:40   #1 (permalink)
Neuer User
 
Registriert seit: May 2006
Beiträge: 3
Funktionen dynamisch erstellen in for-schleife

Hallo,

ich möchte eine unbestimme Anzahl an Funktionen erstellen.

So bin ich an die Sache rangegangen:

PHP-Code:
for (0i<5i++) {
    
_root["test"+i] = function () {
        
trace(i);
    }
}

test4(); 
Das gibt dann aber 5 statt 4 aus. Warum das so ist habe ich verstanden. Nur wie umgehe ich dieses Problem?

Habe schon versucht die funkion mit eval zu erstellen, sodass nicht i getraced wird, sondern der Wert von i zu dem Zeitpunkt wo die Funktion erstellt wurde. Das haut aber leider auch nicht hin.

Weder so:
PHP-Code:
for (var 0i<5i++) {
    eval(
"_root[\"test"+i+"\"] = function () { trace("+i+"); }");
}

test4(); 
noch so:
PHP-Code:
for (0i<5i++) {
    
_root["test"+i] = eval("function () { trace("+i+"); }");
}

test4(); 
Habe schon stundenlang Suchmaschinen bemüht, aber nichts brauchbares gefunden. Bin über jeden Hinweis oder Tipp dankbar.
Bolle123 ist offline   Mit Zitat antworten
Alt 19-06-2007, 14:45   #2 (permalink)
undefined
 
Benutzerbild von mildesign
 
Registriert seit: Jul 2001
Ort: Stuttgart
Beiträge: 1.839
i ist 5 nachdem die Schleife durchlaufen wurde. Du musst die Werte zwischenspeichern
__________________
mfg Frank
mildesign ist offline   Mit Zitat antworten
Alt 19-06-2007, 14:46   #3 (permalink)
das is der neue!
 
Registriert seit: Nov 2006
Ort: Fulda
Beiträge: 33
Hab jetzt kein Flash hier, aber vielleich hilft folgendes?
PHP-Code:
for (0i<5i++) {
    
_root["test"+i] = function () {
        
test i;
        
trace(test);
    }
}

test4(); 
Meine Vermutung: Du gibts ja die Variable i aus....das ist die, die munter bis 5 hochzählt und dan 5 bleibt. Also sagst du der Funktion test4 nicht, gebe "4" aus, sondern gebe die Zählvariable i aus, die wie wir wissen, auf 5 steht.
milsehannes ist offline   Mit Zitat antworten
Alt 19-06-2007, 14:50   #4 (permalink)
Neuer User
 
Registriert seit: May 2006
Beiträge: 3
Ja, warum ich 5 ausgegeben bekomme ist mir klar.

Zwischemspeichern .. hört sich gut an .. nur: WIE ?

@milsehannes: Bringt leider nichts. Wenn die Funktion aufgerufen wird, wird test auch 5 gesetzt (weil die schleife schon beendet ist). Und dann sind wir so weit wie am Anfang ..
Bolle123 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