createEmptyMovieClip + on press zuweisen

Chocobanana

Erfahrenes Mitglied
Hi @all!

Ich erstelle eine Thumbnail Leiste und erstelle mit createEmptyMovieclip für jedes Thumbnail einen leeren MC. Da lade ich dann mit loadMovie ein jpg Bild rein. Nun will ich jedem Bild eine on press Funktion zuweisen - beim Anklicken eines Bildes soll ja dann ein großes angezeigt werden. wie mach ich das am besten?

Greetz,
Choco
 
Das Problem ist, dass bei loadMovie Aktionen des Movieclips, in den das Bild geladen wird, wieder überschrieben werden.

Möglichkeit 1 (ungetestet):
- du erstellst einen Movieclip,
- lädst das Bild hinein
- prüfst wann das Bild fertig geladen ist und
- weißt erst dann die onPress-Aktion zu


Möglichkeit 2:
Du erstellst einen Movieclip, darin noch einen, in den du das Bild lädst und dem _äußeren_ weißt du die onPress-Aktion zu
PHP:
this.createEmptyMovieClip("container", 1);
this.container.createEmptyMovieClip("bild", 1);
this.container.bild.loadMovie("bild.jpg");
this.container.onPress = function() {
	//hier was dann passieren soll
};
Gruß
Rena
 
Ich bekomm zwar alle Bilder, stehe aber da an wo ich schon mal war. Wenn ich beim onPress "trace(i);" schreibe, dann kommt bei jedem Bild der Wert des letzten Bildes. Hab das Prob. auch schon öfter wo gelesen, ne Lösung hab ich aber noch nicht gefunden.

Mein Code soweit:

Code:
var i, h;
h=102;
for(i=1; i<21; i++){
	this.createEmptyMovieClip("container"+i,i);
	this["container"+i].createEmptyMovieClip("bild"+i,i);
	this["container"+i]["bild"+i].loadMovie("converted/th_image"+i+".jpg");
	this["container"+i].onPress = function(){
		trace("dreck"+i);
	}
	this["container"+i]._x=-49;
	this["container"+i]._y=h;
	h=h-95;
}
stop()
 
Ja klar, die Variable i existiert ja auch nicht innerhalb der neuen Movieclips bzw. existiert auf der Zeitleiste auf der die for-Schleife steht. Dort wird sie hochgezählt und hat am Ende (wenn du drauf klickst) den letzten Wert. Geht auch nicht anders, es gibt dort ja auch keine "mehreren i's"

Lösung: den neuen Movieclips das aktuelle i als eigene Variable zuweisen und dann mit konkreter Benennung, welche Variable man meint (das eigene -> this) auslesen
PHP:
var i, h;
h=102;
for(i=1; i<21; i++){
	this.createEmptyMovieClip("container"+i,i);
	this["container"+i].createEmptyMovieClip("bild"+i,i);
	this["container"+i]["bild"+i].loadMovie("converted/th_image"+i+".jpg");
	this["container"+i].mein_i = i; // <- zuweisen
	this["container"+i].onPress = function(){
		trace("dreck"+this.mein_i); // <- eigene Variable verwenden
	}
	this["container"+i]._x=-49;
	this["container"+i]._y=h;
	h=h-95;
}
stop()
Gruß
Rena
 
Zuletzt bearbeitet:
Ups, ist ja logisch. Da bin ich wieder ordentlich auf der Leitung gestanden :-(
Funktioniert jedenfalls, großes Dankeschön!
 
Zurück