Tobias Menzel
Erfahrenes Mitglied
Hi,
probiers mit diesem Code:
Erklärungen:
Nachtrag: Mit dieser Methode werden nicht wirklich die gelöschten Nummern ersetzt, sondern immer die jeweils letzte. Willst Du wirklich "Lücken füllen", müsstest Du mit Arrays arbeiten, was eine recht umfangreiche Umstellung des Codes erfordern würde. Sag in diesem Fall noch einmal Bescheid.
Gruß
.
probiers mit diesem Code:
Code:
var current = 0;
var max = 3; // Maximalanzahl;
firstOne.onPress = function() {
if (current >= max) return;
var newOne = this.duplicateMovieClip("dup" + current, this._parent.getNextHighestDepth());
newOne.tf.text = current + 1;
newOne._alpha = 70; // kann weg
newOne.onRelease = newOne.onReleaseOutside = function() {
current --;
this.removeMovieClip();
}
newOne.onPress = function() {
this.startDrag();
}
newOne.startDrag();
current ++;
}
firstOne.onRelease = firstOne.onReleaseOutside = function() {
this._parent["dup" + (current - 1)].stopDrag();
}
- Die Methode "removeMovieClip" des MovieClip-Objektes erwartet keinen Parameter. Gelöscht wird immer der MC, der vor der Methode notiert ist.
- Das "stopDrag" kannst Du Dir sparen: Wenn der MC gelöscht wird, wird er natürlich auch nicht mehr gezogen ...
- Du musst "current" in der onRelease-Methode einfach um 1 herunterzählen.
- Zusätzlich darfst Du dann aber den onPress-Handler des Ursprungsclips nicht löschen, wenn "current" den Maximalwert erreicht hat: Man könnte ja auch danach noch einen der Duplikate löschen und dann wärs aus mit dem Neukopieren, weil der gesamte Handler futsch ist. Statt dessen habe ich die Überprüfung von "current" einfach an den Anfang des Handlers gesetzt: Ist der Wert höher als der Maximalwert, wird die Funktion einfach verlassen.
Nachtrag: Mit dieser Methode werden nicht wirklich die gelöschten Nummern ersetzt, sondern immer die jeweils letzte. Willst Du wirklich "Lücken füllen", müsstest Du mit Arrays arbeiten, was eine recht umfangreiche Umstellung des Codes erfordern würde. Sag in diesem Fall noch einmal Bescheid.
Gruß
.