Problem mit positionieren von MC per createEmptyMoveClip

NoGFX

Erfahrenes Mitglied
Bin grad dabei eine art Tabelle in Flash zu erstellen, wofür ich createEmptyMovieClip und attachMovie verwende, das Script sieht wie folgt aus:

PHP:
function create() {
	for (nr=1, h=0; nr<=45; nr++, h++) {
		for (v=0; v<=9; v++) {
			this.createEmptyMovieClip("obj"+nr, 100000);
			this["obj"+nr].attachMovie("clip", "clip"+nr, 100000);
			this["obj"+nr]._x = 164+(13.5*v);
			this["obj"+nr]._y = 92+(130*h);
		}
	}
}
this.onEnterFrame = function() {
	create();
}

Das Problem dabei ist, dass er statt mehreren Feldern (die Felder bestehen aus dem Clip der über attachMovie eingebunden wird), nur eins dargstellt wird auf der Position, auf welcher vermutlich der letzte der 45 Felder sein dürfte...
 
Code:
this.createEmptyMovieClip("obj"+nr, 100000);
Damit erstellst Du alle Instanzen auf der Tiefenebene 100000 (ich würd übrigens nicht unbedingt eine so hohe Zahl verwenden, die Anzahl der verfügbaren Tiefenebenen ist begrenzt - die genaue Zahl habe ich nicht im Kopf), wodurch Du jeweils die letzte überschreibst. Versuchs mal so:
Code:
function create() {
    var n = 0;
    for (nr=1, h=0; nr<=45; nr++, h++) {
        for (v=0; v<=9; v++) {
            this.createEmptyMovieClip("obj" + n, 1000 + n); 
            n ++;
Ausserden habe ich die Variable "nr" in der createEmptyMovieClip-Methode durch eine Laufvariable "n" ersetzt: nr wird bei Dir zwar auch inkrementiert, aber Du erhälst immer 10 Instanzen gleichen Namens, weil nr in der inneren Schleife konstant bleibt.

Gruß
.
 
sorry erstmal dür den Doppelpost..

Habe eben nocheinmal ein bisschen dran rumgespielt und wollte versuchen eine kleine Linkliste zu erstellen

Das Script:
PHP:
onLoad = function() {
	for (nr=0, h=0; nr<=40; nr++, h++) {
		for (v=0; v<=7; v++, nr++) {
			this.createEmptyMovieClip("obj"+nr, 10+nr);
			this["obj"+nr].attachMovie("clip", "clip"+nr, 10+nr);
			this["obj"+nr]._y = 164+(15*v);
			this["obj"+nr]._x = 92+(130*h);
			this["obj"+nr].onMouseDown = function() {
				getURL("index.php?te="+nr);
			};
		}
	}
};

So, habe mich erstmal ein bisschen umgeguckt da ich eigentlich nicht geglaubt habe das man diesen onMouseDown direkt in die for-Schleife reinsetzen kann/sollte, habe es aber in einigen .fla Beispiel Datein genau so vorgefunden, mit dem Unterschied das es dort auch geklappt hab, wenn man bei mir auf einen der Buttons klickt öffnet sich mein Firefox nur ca. 50x und das wars...
 
Hi,

1. die Variable "nr" kannst Du in dem Mausereignis nicht verwenden, da sie nur in der Schleife bekannt ist und ständig ihren Wert ändert. Du musst den einzelnen Clips eine eigene Variable mit diesem Index mitgeben.

2. Verwende nicht das Ereignis onMouseDown - das feuert nämlich immer, wenn Du die Maustaste drückst, auch wenn sich die Maus nicht über dem Clip befindet. Nimm lieber onPress oder onRelease:
Code:
this["obj"+nr].idx = nr; // <-- damit er seine Nummer kennt...
this["obj"+nr].onRelease = function() {
    getURL("index.php?te=" + this.idx);
}

Gruß
.
 
Und nochmals danke, klappt auch perfekt...
auch wenn ich wohl langsam anfange zu nerven, nun tritt ein neues Problem auf und ich kann mir wiklich nicht erklären wie das zustande kommt...

Der Clip der eingebunden wird ist ein Button und sobald ich die onPress Funktion in die Schleife packe, gibt dieser den Geist auf, bzw er scheint nichtmehr zu erkennen wenn man mit der Maus über ihm ist und springt zu dem Hover Frame, komischerweise funktioniert es weiterhin wenn ich z.B onMouseDown verwende...
 
Hi,

dafür müsste ich die Datei sehen (ehrlich gesagt, kann ich mir nichtmal unter Deiner Fehlerbeschreibung was vorstellen ;) ).

Gruß
.
 
Zurück