Entfernen Movie clip as3
Ok diese wurde driving me nuts für die letzten paar Stunden, und ich weiß, es gibt eine einfache Antwort.
Ich habe eine scrollPane-Komponente, die hat einen Film-clip als right_container_mc, wie es die Quelle.
In diesem right_container_mc ich habe andere anderen Film-clips genannt execiseBox, die Hinzugefügt wird (in den richtigen Positionen auf der Bühne) aus einem array mit einer for-Schleife.
Jede übung, die box hat einen button-symbol genannt close_btn.
Erstens: ich bin nicht sicher, dass dies der beste Weg, dies zu erreichen, so fühlen sich frei, Vorschläge für eine bessere Lösung!
Was ich will zu tun ist, wenn dieses close_btn geklickt wird, entfernen Sie die spezifischen exerciseBox Film aus dem Feld und von der Bühne, dann in einer Schleife durch das array wieder so alles in der übung box movieclips aktualisieren Ihre position auf der Bühne.
Ich habe Probleme damit, eine Referenz auf den MovieClip, weil es verschachtelt ist, um es zu entfernen aus dem array und Bühne. Hier ist der code, den ich bisher haben, müssen hinzufügen, dem entfernen und aktualisieren von teilen. Auch sollte ich entfernen Sie alle aktuellen Instanzen der exerciseBox Film-clips vor der array-Schleife jedes mal ausgeführt??
Jede Hilfe wird sehr geschätzt.
function addMovieClipsToStage(event:MouseEvent):void
{
scrollPaneRight.source = right_container_mc;
exerciseBox = new Exercisebox();
exerciseBox.close_btn.addEventListener(MouseEvent.CLICK, onRemoveBox);
boxArray.push(exerciseBox);
sortBoxes();
scrollPaneRight.update();
}
function onRemoveBox(event:MouseEvent):void
{
}
function sortBoxes():void
{
for (var i:int =0; i<boxArray.length; i++)
{
right_container_mc.addChild(exerciseBox);
exerciseBox.x = 0;
exerciseBox.y = ((115 + 3)*i);
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
in Ihrem onRemoveBox Funktion
Veranstaltung.currentTarget sollte das Objekt zurückgegeben, das die Funktion ausgelöst wurde, durch.
Sehen, wie das Objekt ist ein Kind right_container_mc vielleicht könnten Sie versuchen:
Basiert auf dem code, den Sie gepostet haben, ich bin mir nicht sicher, Sie müssen sogar ein array. Es sieht aus wie Sie verwenden es, um zu verfolgen die Anzahl der Kinder. Display-Liste bereits erledigt das für Sie.
So, ich glaube, Ihre Art konnte nur Referenz
right_container_mc.numChildren
statt eines Arrays der Länge.Hoffe, einige von, das hilft!
Um loszuwerden, das boxArray, Sie könnten einfach in einer Schleife durch alle ExerciseBoxes in right_container_mc.
Weitere Informationen über die "for each ... in', check out http://help.adobe.com/en_US/AS3LCR/Flash_10.0/statements.html#for_each..in
Aus irgendeinem Grund die for-each-Schleife in der sortBoxes Funktion wird nicht gefeuert. Ich habe eine trace-Anweisung, um diese zu überprüfen und nichts passiert, hier ist der aktualisierte code: