Mc löschen

green_phanta

Erfahrenes Mitglied
Hi

Ich habe so einen Container erstellt (Movieclip)

PHP:
var stufe = this.getNextHighestDepth(); 
var initObject = new Object();
initObject._x = Stage.width/2;
initObject._y = Stage.height/2;
var container = this.createEmptyMovieClip("container", stufe,initObject); 
this.container.loadMovie("1.swf");

Ich will jetz auf nen Button folgendes legen:

Bei Klick soll sich der Container löschen.

Ist nicht so schwer aber ich komme nicht dahinter.
Könnt ihr mir helfen?

greets green
 
Die bei der Ausführung geladenen Objekte, genauer gesagt, die mit loadMovie geladenen Objeckte können mit unloadMovie(Object_Name) wieder gelöscht werden.

In deinem Fall müsste

Code:
Button.onRelease=function(){
unloadMovie(container);
}

funktionieren.

Gruß
 
und bei create oder attach nimmst du removeMovieClip, aber vorher in einer positiven Stufe swapen
bei unload bleibt die Instanz erhalten.
 
Zuletzt bearbeitet:
das ist die Stufe, in die du deinen MC lädst, man könnte ja auch eine negative Stufe benutzen. Um danach aber den MC löschen zu können, musst du in dem Fall die Stufe ändern, also den MC in eine positive Stufe verschieben. und das machst du mit swapDepths();

Gruß
 
PHP:
var stufe = this.getNextHighestDepth(); 
var initObject = new Object();
initObject._x = Stage.width/2;
initObject._y = Stage.height/2;
var container = this.createEmptyMovieClip("container", stufe,initObject); 
this.container.loadMovie("1.swf");
this.container.swapDepths(0);

_root.aus.onRelease=function(){
removeMovieClip(container);
_root.gotoScene(1, 44);
}

Ist der Code so richtig?

Weil es funktioniert leider nicht.
Viellecht liegt es daran das ich ... Szenen Verwende?
Ja ich weiß ich hasse Szenen auch aber naja.

greets
 
hallo, ich glaube, bei dir ist alles durcheinander geworden :) Das InitObjekt verstehe ich nicht. Wenn du einfach eine Movie laden willst brauchst du nun einen Container und das wars. An deiner Stelle würde ich am einfachsten den folgenden Code benutzen:

Code:
this.createEmptyMovieClip("container", this.getNextHighestDepth());
loadMovie("1.swf", container);
Button.onRelease = function() {
	removeMovieClip(container);
};
der Container MC hat in diesem Fall seinen Registrationpunkt automatisch am linken oberen Ecke, und wird auch am linken oberen Ecke der Stage sitzen. So brauchst du wahrscheinlich den MC nicht zur Mitte der Stage verschieben. Wenn das aber erwünscht ist, musst du einfach den Container verschieben. Also:

Code:
container._x=Stage.width/2;
container._y=Stage.height/2;

swapDepths() Methode brauchst du auch nicht, denn getNextHighestDepth() erzeugt automatisch eine positive Stufe.

Zum Szenensprung brauchst du nun folgendes:

Code:
gotoAndPlay("Szenenname",Framenummer);
 
Hallo,

du kannst in diesem speziellen Fall die ganze Tiefenebene-Geschichte getrost vergessen. Die Funktion getNextHighestDepth() gibt dir in diesem Zusammenhang keine negativen Werte zurück, dein Container ist also schon kompatibel und unloadMovie() achtet nicht auf die Tiefenebene. Umlart wollte dich wohl eher drauf aufmerksam machen, dass falls du removeMovieClip verwendest (was du hier nicht musst), du darauf achten müsstest.

Ich behaupte, dass du den Container nicht richtig referenzierst. Lass dir mal die Instanz "container " ausgeben:

Code:
_root.aus.onRelease=function(){
     trace (container)
     container.unloadMovie();
     _root.gotoScene(1, 44);
}

gruss

EDIT: Und das initObject gibts nur bei attachMovie() und duplicateMovie().
 
Zuletzt bearbeitet:
Hallo,

das bedeutet, dass sich alle Instanzen dieses Skripts auf der Hauptzeitleiste befinden. Hier eine "bereinigte" Version, die funktionieren sollte:

Code:
var stufe = this.getNextHighestDepth(); 
var container = this.createEmptyMovieClip("container", stufe); 
container._x = Stage.width/2;
container._y = Stage.height/2;
container.loadMovie("1.swf");

aus.onRelease=function(){
   container.removeMovieClip();
   gotoAndStop("Szene 1", 44);
}

Hier findest du anhand des unloadMovie-Referenzeintrags nochmals eine recht gute Auflistung der Unterschiede von removeMovieClip und unloadMovie.

gruss
 

Neue Beiträge

Zurück