Positionssteuerung von Movieclips

Ostmensch

Grünschnabel
Moin

Ich wollte bei Flash die Positionsdaten von Movieclips mit einem script berechnen und dann die Movieclips entsprechend der von Script errechneten werte verteilen.
Allerdinge bewegen sich die Movieclips nicht auf den punkt, wo sie hin sollen.

Ich habe es wiefolgt versucht (das script ist in einem Movieclip, der nicht bewegt werden soll):
PHP:
  onClipEvent(load){
  	bilder = new Array(100);
  	var n,i = 0;	  //n zähler der Datenpakete, i interner Zähler
  	var ab,x,y,ca,cb=0;
  }
  onClipEvent(enterFrame){
  	for(n=0;n<=19;++n){
  		while (ab==0){
  			ab=1;
  			x=Math.random(6);
  			y=Math.random(5);
  			for(ca=0;ca<=n;++ca){
 				if(bilder[ca*5]==x and bilder[ca*5+1]==y) ab=0;
  			}
  			if(ab=1){
  				bilder[n*5] = x;
  				bilder[n*5+1]=y;
  				bilder[n*5+2]=n;
  				bilder[n*5+3]=0;
  				bilder[n*5+4]=0;
  			}
  		}   //ende while ab=0
  		ab=0;
  	}
  	b0._x= 127+bilder[0*5]*83;
  	b0._y= 21+bilder[0*5+1]*82;	 // usw. für b1bisb19
  }

Ich würde nun gerne wissen, ob ihr mir sagen könnt, was ich falsch mache (Movieclips mit den entsprechenden Namen existieren). Und mir vielleicht auch sagen könnt, was ich machen muss, damit es geht, ich habe auch schon versucht, die Variablen in den Movieclips zu nutzten (habe nicht versucht, die Variablen in den betreffenden Movieclips zu initiallisieren), die bewegt werden sollen und dann mit this._x und this._y zu bewegen, was aber auch nicht von Erfolg gekrönt war.

gruss
Ostmensch
 
Hi,

was das Script genau macht, habe ich hier (nicht zuletzt mangels Flash in der Fremde) noch nicht analyliert (das werde ich wohl heute Abend nachholen, wenn es kein anderer tut), aber ich kann Dich schon mal auf einige (mögliche) formale Fehler aufmerksam machen:

- gibt Math.random(9) wirklich eine Ganzzahl zwischen 0 und 8 aus? Ich bin mir da nie sicher. Kann sein, dass Du int(Math.random()) * 9 verwenden musst.

- Bei Vergleichen muss Du den Vergleichsoperator '==' statt dem Zuweisungsoperator '=' verwenden: if (a == 0)

- Wenn sich dieses Script in einem MovieClip befindet und die angesprochenen Clips in einem anderen, kann es sein, dass Du ein _parent (bzw _root) vor "b0", "b1" usw. setzen musst.

... genau lässt sich das nicht sagen, am besten wäre es, wenn Du die Datei einmal postest.

Gruß
.
 
Moin

Ersteinmal danke für die grundlegenden hinweise. Der zuweisungsoperator bei if(ab==1) ist mir entgangen, als ich die kontrolliert habe. Den unterschied kenn ich natürlich, nur macht es die Sache nicht leichter, wenn man mit anderen Sprachen zu tun hat, die = als Vergleich nutzten und := als zuweisung nehmen.
die Datei kann ich leider nicht in den Anhang legen (zu gross)und ich finde auf die schnelle auch keinen kostenlosten FTP hoster.
zu den _root: aus der Hilfe bin ich nicht so ganz schlau geworden, wie ich das root nun zu nutzten habe, ist ein _root.b0._x = 34; richtig oder wie müsste ich das anwenden, nen syntax error hat es zwar nicht gegeben, aber am Ergebnis hat sich leider auch nichts geändert (sämtliche hinweise ausgefürt).
Das skript soll den Zufälligen aufbau eines Memory-Feldes bewerkstelligen, dazu soll es in der for schleife programminterne positionen festlegen und die in der Array abspeichern, und aus diesen Koordinaten dann die entsprechenden bildpositionen errechnen und die Movieclips gleich an die Stelle setzten.
Und wie gesagt, das skript ist in einem Movieclip, dass sich auf einer anderen Ebene, aber in der gleichen Szene und Bild befindet.
Und bevor ich es ganz vergesse: ich verwende FlashMX '04(edu)

Gruss
Ostmensch
 
Zurück