Änderung einer Globalen Variable abfragen + MovieClip

helene1

Mitglied
Hallo,
ich habe 3Buttons (home_btn, about_btn, ability_btn).
Das ActionScript für jeden Button sieht so aus:
PHP:
on (press)  {
	_root.cl0.removeMovieClip();
	_root.cl1.removeMovieClip();
	_root.cl2.removeMovieClip();
	_root.clip.removeMovieClip();
	_root.clip.removeMovieClip();
	this.removeMovieClip();
	this._parent.removeMovieClip();
					
 	_global.bildbez = "ability";
}
Die globale Variable "bildbez" wird je nachdem welcher Button gedrückt wurde anders belegt.


Folgender Code der in einer eigenen Ebene liegt, die sich über den ganzen Film erstreckt, soll bei jeder ÄNDERUNG der Variable bildbez ausgeführt werden:
PHP:
for (var i:Number = 0; i<3; i++) {
	var clip = this.createEmptyMovieClip("cl"+i, i);
	clip.loadMovie(bildbez+i+".jpg", i);
	clip._x = 197+276*i;
	clip._y = 118;
	clip._alpha = 0;
	loadClip(clip);
}

function loadClip(clip) {
	.....
}

function fade() {
	.........
	};
}

1.Wie kann ich diese Bedingung (führe diesen Code aus, jedesmal wenn sich die Variable bildbez ändert) formulieren?

2.Zum 1CodeTeil: Das ist vermutlich doppeltgemoppelt gelöscht ODER?, Was muss ich schreiben um die erzeugten 3 Movieclips komplett zu löschen? Um danach wieder (unter den anderen Menüpunkten) mit der gleichen Fkt. NEUE erzeugen zu können?

gruß
helene
 
Hi,

1. alles, was nach
Code:
this.removeMovieClip();
kommt, wird nicht mehr ausgeführt, da Du damit den Clip entfernst, auf dem der Code notiert ist. ;)

Setze die removeMovieClip-Methode für den aktuellen Clip ans Ende des Codeblockes.

2. Variablen lassen sich mit der "watch"-Methode überwachen. Für globale Variablen funktioniert das allerdings m.E. nicht.

In Deinem Fall würde ich Dir empfehlen, einfach eine Funktion aufzurufen, die die Variable ändert und den Codeblock, der neu ausgeführt werden soll, in diese Funktion packen:
Code:
on (press)  {
    // hier Dein bisheriger Code
                    
    _root.changeBez("ability");
    this.removeMovieClip(); // diese Zeile erst am Ende!
}

Code:
// auf der Hauptzeitleiste:

function changeBez(str) {
    global.bildbez = str;
    for (var i:Number = 0; i<3; i++) {
        var clip = this.createEmptyMovieClip("cl"+i, i);
        clip.loadMovie(bildbez+i+".jpg", i);
        clip._x = 197+276*i;
        clip._y = 118;
        clip._alpha = 0;
        loadClip(clip);
    }
}

Gruß
.
 
Zurück