probleme mit Zählschleife

timäää

Erfahrenes Mitglied
Hi!

ich hab hier folgendes Problem: Und zwar ist bei diesem kleinen Script irgendwo ein Problem das ich nicht finde... Das erste Trace gibt noch die korrekte Zahl aus, das zweite allerding immer 6. "anzKnöpfeMenü ist" als 5 initialisiert, deswegen dürfte "a" ja eigentlich gar nicht 6 werden.. Wisst ihr was hier falsch läuft?
PHP:
function onEnterFrame()
{
	for(a =1;a <= anzKnöpfeMenü; a++)
	{
		//
		//ANIMATION
		//
		if(menü["Button"+a].hitTest(_xmouse,_ymouse,true))
		{
			menü["Button"+a].nextFrame();
			trace(a); //  <- Hier wird noch der richtige Wert ausgegeben
		}
		else
		{
			menü["Button"+a].prevFrame();
		}
		//
		//ANTIMATION ENDE
		//
		
		//
		//ANKLICKEN
		//
		menü["Button"+a].onPress = function ()
		{
			loadFilmDaten(a);
			trace(a); // HIER wird immer 6 ausgegeben...
		}
		//
		//ANKLICKEN ENDE
		//	
	}
}
 
Da deine Funktion onEnterFrame heißt wird sie jeden Frame immer wieder neu aufgerufen.
Also andauernd.

Deine Bedingung ist ja solange a <= 5, a++.
Also wenn a = 5 ist macht er nochmal ++ und dann hast du deine 6.
a ist bei dir ja eine Variabel die am Ende eines jeden Frames 6 ist.

Versuchs mal mit menü["Button"+a].a = a
und dann this.a für die Buttons benutzen.

Und soll bzw muss die Funktion wirklich jeden Frame aufrufen werden?
HitTest macht ja Sinn jeden Frame, aber onPress jedes mal neu zuweisen?

Grüße,

kuat
 
Mh...Also wirklich weitergeholfen hat mir das jetz nicht... sry...
Also warum die Variable bei 6 landet, is mit jetz klar, aber dass hat mein Problem trotzdem nicht gelößt....
Versuchs mal mit menü["Button"+a].a = a
und dann this.a für die Buttons benutzen.
was soll das Bringen? die Buttons ahbedn doch gar keine Variable a...

Mein Problem ist ja, dass Buttons vorher dynamisch erzeugt werden, also von Anfang an noch nicht klar is, wie viele es sind... und nun müssen diese Buttons ja irgendwie überwacht werden... Wie könnte das denn Funktionieren?

PS: Was mir grade noch eingefallen ist: wenn man den Film Testet, erscheint bei den Buttons eine Hand, also irgendwas scheint da doch zu funktionieren...
 
Zuletzt bearbeitet:
In dem Frame in dem deine Funktion liegt, deklarierst du mit for(a =1;.... die Variabel a. Die ist am Ende eines jeden Frames 6.
Deine Knöpfe greifen auf diese eine! Variabel a zu, die immer 6 ist.

Mit menü["Button"+a].a = a meinte ich, dass jeder Button seine Eigene Variabel bekommen soll.
Dann bekommt beim ersten Durchlauf der Schleife der Knopf eine 1 zugewiesen, und wenn du danach die Variabel a in der Funktion hochzählst, bleibt die des Knopfes trotzdem bei 1.

So sähe das in etwa dann aus:

Code:
function onEnterFrame()
{
    for(a =1;a <= anzKnöpfeMenü; a++)
    {
        //
        //ANIMATION
        //
        if(menü["Button"+a].hitTest(_xmouse,_ymouse,true))
        {
            menü["Button"+a].nextFrame();
            trace(a); //  <- Hier wird noch der richtige Wert ausgegeben
        }
        else
        {
            menü["Button"+a].prevFrame();
        }
        //
        //ANTIMATION ENDE
        //
        
        //
        //ANKLICKEN
        //
        menü["Button"+a].a = a
        menü["Button"+a].onPress = function ()
        {
            loadFilmDaten(this.a);
            trace(this.a); // HIER wird immer 6 ausgegeben...
        }
        //
        //ANKLICKEN ENDE
        //    
    }
}
 
Zurück