For-Problem

Leugim

Erfahrenes Mitglied
Hai!
Ich habe eine Reihe an Buttons, die instanznamen web1, web2, web3, web... besitzen.
Nun habe ich es mittels einer onRollOver Funktion im zusammenhang mit "for" geschafft, dass jeder Button beim rollOver einen Mc steuern. Allerdings möchte ich noch ein bisschen weiter und es hinkriegen, dass jeder dieser buttons, je nahc instanznamen, einen mc an einer bestimmten Stelle manipuliert.. allerdings haut da irgendwas nicht mit der Laufzahl hin.. hier mal mein bisheriger "code":
Code:
for (var i:Number = 1; i != 12; i++) {
    _root[ "web"+i].onRollOver = function() {
        des.gotoAndPlay("web"+i); // der mc mit Instanzname "des" reagiert garnicht hierdrauf... wenn man den output des trace weiterunten beachtet ist auch klar warum.. es gibt halt keinen Framenamen "web12" in "des"....
        trace("web"+i);  // ein test-trace .. der Output ist immer "web12"
            if (colore.isPlaying != "web") {
            colore.gotoAndPlay("web");
        }
    };
}

Ich hoffe mal das Problem hat einen nicht allzu peinlichen Ursprung ;-)
Schon mal vielen Dank!
 
Zuletzt bearbeitet:
Hi,

die Variable "i" ist in Deinem rollOver-Handler nicht mehr definiert; die Schleife ist zu dem Zeitpunkt (Mausereignis) ja schon längst abgearbeitet.

Gib den Buttons z.B. eine individuelle ID (die kann ja gerne auf Deiner Laufvariable basieren), um die Aktionen zu unterscheiden:
Code:
for (var i=0; i<5; i++) {
    this["button" + i].idx = i; // <-- Index merken
    this["button" + i].onRollOver = function() {
        switch(this.idx) {
            case 0: machwas(); break;
            case 1: machwasanderes(); break;
            ... usw.
        }
    }
}

Gruß

P.S.: Ich würde Dir empfehlen, die neuen Code-Tags für AS noch nicht zu verwenden, so lange diese noch fehlerbehaftet sind (Arrayklammern werden falsch dargestellt). ;)
.
 
Alles klar! Danke für deine Antwort. Thema ist erledigt :-)
Und sorry wegen der Code-tags ... ich wollte halt nur einmal ausprobieren ... Hab's aber auch eingesehen, dass wohl noch zu früh ist ..
 
Zurück