SonMiko
Erfahrenes Mitglied
Hallo zusammen,
ich habe einen Fehler in meinem Script und komme einfach nicht auf die Lösung.
Es geht um folgendes:
Ich möchte eine Anzahl an Objekten mit einem Funktionsaufruf nacheinander auf der Bühne platzieren. Diese Objekte kann man anklicken, dann verschwinden sie,
und die erste Funktion überprüft eben auch ob die besagte Anzahl erreicht ist - wenn nicht werden wieder objekte erstellt.
Das Problem bei mir ist:
Wenn ich sagen wur 5 Objekte auf der Bühne habe, kann ich quasi endlos lang Objekt 5 anklicken, es verschwindet immer wieder und taucht woanders wieder auf - so wies sein soll. Klicke ich aber ein niedrigeres Objekt an (1,2,3 oder 4), dann verschwinden die Objekte und es kommen keine neuen.
Hier der Code in der ersten Zeitleiste:
Und hier der Code der Schaltfläche die auf dem Objekt (flugobjekt_mc) das generiert bzw. attacht wird, liegt:
Ich vermute folgendes:
Ich generiere ein Objekt von 0 bis 4 (also 5 Stück).
Alles verharrt, bis ein Objekt geklickt wird - inzwischen
saust die Funktion bei jedem Frame-Aufruf immer wieder rauf und runter und checkt ob die Anzahl der Objekte auf der Bühne erreicht ist. Klicke ich nun die 4,
wird einmal die Anzahl der Objekte dekrementiert und sofort erscheint ein neues Objekt.
Da ich die 4 klicke, kann es nur sein, dass auch wieder ein Objekt mit dem Wert 4 erscheint. Klicke ich aber hingegen die 3, dann wird auch um eins dekrementiert und das Objekt verschwindet, aber die Tiefe 3 fehlt in mitten der Tiefen 0-4.
Das nächste Objekt das erschaffen wird erhält wieder die fehlende Tiefe - also die 4.
So wird immer ein Objekt nach dem anderen überschrieben, wenn es kleiner als 4 ist (bzw. die Tiefen werden überschrieben), und so kommen dann auch keine neuen Objekte.
Mein Lösungsansatz war folgende Idee:
Ich wollte ein Array objNummer anlegen und irgendwie immer die aktuelle Zahl (anzObj) dort reinspeichern. Wenn ich dann auf ein Objekt 3 klicke, wird der Wert 3 aus dem Array gelöscht und "frei", und dann sollte beim nächsten Aufruf aber auch eben nur die 3 vergeben werden...
Jetzt brüte ich hier wie ein irrer, mein Schädel saust und ich bin irgendwie ein wenig verzweifelt - denn so richtig weiter bzw. umsetzen kann ich das ganze nicht.
Daher wäre ich echt wirklich dankbar, wenn mir jemand ein wenig helfen könnte.
P.S.: AnzObjMax ist noch nicht verwendet, das Array habe ich auch noch nicht richtig eingebaut...
Liebe Grüße,
Euer
Mike
ich habe einen Fehler in meinem Script und komme einfach nicht auf die Lösung.
Es geht um folgendes:
Ich möchte eine Anzahl an Objekten mit einem Funktionsaufruf nacheinander auf der Bühne platzieren. Diese Objekte kann man anklicken, dann verschwinden sie,
und die erste Funktion überprüft eben auch ob die besagte Anzahl erreicht ist - wenn nicht werden wieder objekte erstellt.
Das Problem bei mir ist:
Wenn ich sagen wur 5 Objekte auf der Bühne habe, kann ich quasi endlos lang Objekt 5 anklicken, es verschwindet immer wieder und taucht woanders wieder auf - so wies sein soll. Klicke ich aber ein niedrigeres Objekt an (1,2,3 oder 4), dann verschwinden die Objekte und es kommen keine neuen.
Hier der Code in der ersten Zeitleiste:
Code:
stop();
//Variablen
var anzObjMax:Number=5;
var anzObjGleich:Number=5;
var anzObj:Number=0;
var objNummer:Array;
//Funktion Objekt werfen
function objWerfen(){
if(anzObj<anzObjGleich){
this.attachMovie("flugobjekt_mc","flugobjekt_mc"+anzObj,anzObj);
this["flugobjekt_mc"+anzObj]._x=random(600);
this["flugobjekt_mc"+anzObj]._y=random(400);
this["flugobjekt_mc"+anzObj].createTextField("mike_txt",anzObj,0,0,50,50);
this["flugobjekt_mc"+anzObj].mike_txt.text=anzObj;
anzObj++;
}
else{
//
}
}
onEnterFrame=function(){
objWerfen();
}
Und hier der Code der Schaltfläche die auf dem Objekt (flugobjekt_mc) das generiert bzw. attacht wird, liegt:
Code:
on (press) {
_parent.anzObj--;
this.removeMovieClip();
}
Ich vermute folgendes:
Ich generiere ein Objekt von 0 bis 4 (also 5 Stück).
Alles verharrt, bis ein Objekt geklickt wird - inzwischen
saust die Funktion bei jedem Frame-Aufruf immer wieder rauf und runter und checkt ob die Anzahl der Objekte auf der Bühne erreicht ist. Klicke ich nun die 4,
wird einmal die Anzahl der Objekte dekrementiert und sofort erscheint ein neues Objekt.
Da ich die 4 klicke, kann es nur sein, dass auch wieder ein Objekt mit dem Wert 4 erscheint. Klicke ich aber hingegen die 3, dann wird auch um eins dekrementiert und das Objekt verschwindet, aber die Tiefe 3 fehlt in mitten der Tiefen 0-4.
Das nächste Objekt das erschaffen wird erhält wieder die fehlende Tiefe - also die 4.
So wird immer ein Objekt nach dem anderen überschrieben, wenn es kleiner als 4 ist (bzw. die Tiefen werden überschrieben), und so kommen dann auch keine neuen Objekte.
Mein Lösungsansatz war folgende Idee:
Ich wollte ein Array objNummer anlegen und irgendwie immer die aktuelle Zahl (anzObj) dort reinspeichern. Wenn ich dann auf ein Objekt 3 klicke, wird der Wert 3 aus dem Array gelöscht und "frei", und dann sollte beim nächsten Aufruf aber auch eben nur die 3 vergeben werden...
Jetzt brüte ich hier wie ein irrer, mein Schädel saust und ich bin irgendwie ein wenig verzweifelt - denn so richtig weiter bzw. umsetzen kann ich das ganze nicht.
Daher wäre ich echt wirklich dankbar, wenn mir jemand ein wenig helfen könnte.
P.S.: AnzObjMax ist noch nicht verwendet, das Array habe ich auch noch nicht richtig eingebaut...
Liebe Grüße,
Euer
Mike