Movieclip und Variablen

Refereen

Mitglied
Hallo zusammen,

wahrscheinlich habe ich einfach nur ein grosses Brett vor meinem Kopf, aber ich kann den Fehler einfach nicht finden.

ich habe auch der Hauptbühne einen Movieclip liegen. In diesem existiert eine Varialble, die ich aber nicht von der Hauptbühne verändern kann. Meine Frage ist jetzt: warum?

Code:
abstand = 0; //Abstand zwischen den Posis
for(i = 1;i<=5;i++)
{
	duplicateMovieClip("position","position"+i,i);
	this["position"+i]._x = 75 + abstand;
	this["position"+i]._y = 95;
	this["position"+i].spielposition = i;
	this["position"+i].spielername = "test";
	abstand += 15;
	
}

Auf Variable spielername kann ich nicht zugreifen, obwohl sie im Movieclip im ersten Frame liegt.
 
Moin!

Also ich würde in der entsprechenden Zeile einfach ein

PHP:
_root.Symbolname[position+i].spielername = "test";

machen und nicht so wie du. Allerdings musst du dann den richtigen Namen angeben. Ausserdem denke ich ist das this[..] überflüssig, da sich die Variable doch im Hauptfilm befindet oder sehe ich da was falsch ?

Mfg
 
Vielen Dank an Euch beide. Nach dem Fussball kommen sie alle aus ihren Löchern ;)

Ich werde das gleich mal probieren.

Rene
 
Was heißt hier Fußball? :)

Zusatz: Wenn alle Zuweisungen ausser spielername funktionieren:
Code:
this["position"+i]._x = 75 + abstand;
	this["position"+i]._y = 95;
	this["position"+i].spielposition = i;
, dann machst Du mit der Adressierung nichts falsch! Der Fehler liegt in diesem Fall wohl daran, dass die Variable spielername im entsprechenden Objekt falsch behandelt wird. Wird die Variable in einem Textfeld o.ä. ausgegeben, ist sie dort richtig geschrieben? Wo wird sie noch verwendet bzw. ausgelesen?
 
so ich habe es hinbekommen. Genau das war mein Problem wie es wohl aussah.

Im MovieClip war die Variable mit

Code:
onClipEvent(load){
spielername = "";
}

deklariert. Aber sobald ich nur spielername alleine geschrieben habe, funktionierte es auf einmal.

Dieses Problem habe ich noch nicht mit Arrays gelöst bekommen, in denen ein Weg anhand Positionen gespeichert werden.

Bsp:
Code:
onClipEvent(load){
x_position = new Array();
y_position = new Array();
}

Dann kann ich nicht bei der Initialisierung des Objektes auf den Array zugreifen wie z.b.
["position"+i].x_position[0] = "test";
 
Das brauchst Du auch garnicht:

Alle Objekte vom Typ "position", also position1, position2, position3 enthalten einen unabhängigen Satz lokaler Variablen.
position1.x_position spricht also eine völlig andere Variable an als position2.x_position.

Soll jedes dieser Objekte ein eigenes Array an x-Positionen erhalten, so musst Du das Array in der Klasse (also dem MovieClip) definieren:

x_position= new Array(); (Wohlgemerkt, IM Objekt)

Dann solltest Du das Array mit

position1.x_position[1], position1.x_position[2] usw. ansprechen können.

EDIT:
Bitte vergiss den ersten Teil dieses Posts, ich habe die Frage falsch verstanden.
Es geht darum, einen zurückgelegten Weg in einem Array von Koordinaten zu speichern, oder?
In diesem Fall sollte die Zuweisung funktionieren. Falls (wider Erwarten) nicht:
Man könnte alternativ eine Rückgabefunktion in den Clip integrieren:
Code:
function get_recent_X(Index) {
  return this.x_position[Index];
}
Die Koordinate wird dann mit
Code:
recentx[i] = eval("position"+i).get_recent_X(i);
abgefragt.
 
Zuletzt bearbeitet:
Zurück