Problem mit Funktion in Schleife

Rollo

Erfahrenes Mitglied
Hallo,

seit einigen Tagen versuche ich mich mal richtig in ActionScript. Ich muss sagen einiges scheint mir schon gelungen zu sein, aber ich komme immer wieder bei einigen Sachen ich schleudern. Manche Probleme konnte ich bisher selbst lösen. Dieses bisher (seit heute Morgen) jedoch nicht.

Code:
onClipEvent(load){
	var anz = 4;
	var seite = 0;
	var umbruch = 3;
	for(var i = seite; i < anz; i++){
		this.createEmptyMovieClip("btn"+i,i+200);
		this["btn"+i]._y = Math.floor(i/umbruch)*20+350;
		this["btn"+i]._x = (i%umbruch)*18-142;
		this["btn"+i].createEmptyMovieClip("seitenzahl"+i,i+100);
		this["btn"+i]["seitenzahl"+i].loadMovie("btn.swf");
	         this["btn"+i].btnID = i+1;
                  this["btn"+i].onPress = function(){
			_root.anzeige.inhalt.page.onEnterFrame = function(){
				if(_root.anzeige.inhalt.page._alpha > 0){
					_root.anzeige.inhalt.page._alpha -= (_root.anzeige.inhalt.page._alpha)/2;
				}else{
					_root.anzeige.inhalt.page._alpha += (_root.anzeige.inhalt.page._alpha+2)/4;
					_root.anzeige.inhalt.loadMovie("seiten/seite1/seite1"+this.btnID+".swf");
					trace(this);
				}
			}
		}
	}
}

Das Problem ist das er den Movie in der else Anweisung zwar öffnen will, aber gibt für den zu ladenden Movieclip undefined aus. Ich denke das es an der Adressierung liegt. Wüsste aber nicht wo ich ansetzten sollte, dazu fehlt mir die Erfahrung.

Für eure Antworten bedanke ich mich schonmal.

MfG Rollo
Das P
 
Du definierst den Inhalt in "this.btnID" - rufst dann eine on Press Funktion auf, in der du wiederrum eine onEnterFrame Funktion aufrufst, welche sich auf _root beziehst. Nun versuchst du aber in dieser onEnterFrame Funktion die Variable btnID aufzurufen, welche aber nicht in _root sondern in dem Element davor festgelegt ist.

Da du sowieso immer den Vollständigen Pfad in der onEnterFrame angibst, ersetze:

PHP:
_root.anzeige.inhalt.page.onEnterFrame = function() {

durch
PHP:
			this.onEnterFrame = function() {
Müsste klappen

Noch ein Tipp:
Da du immer "_root.anzeige.inhalt.page" schreibst, lege es doch in einer Variable fest, so hast du weniger zu schreiben und die Fehlerquote ist auch geringer.
Bsp:
PHP:
var path = _root.anzeige.inhalt.page
path._alpha += (path._alpha+2)/4
 
Danke ich versuch gleich mal.

Ja dein Tipp sollte ich mal zu Herzen nehmen. Das ewige Rumgetippe und die Unübersichtlichkeit nervt irgendwann :).
 
Könntest du mal die gesamte .fla Datei hochladen? Dann werd ich nochmal genauer drüberschauen
 
Zurück