loadClip in Klasse funktioniert nicht

Hi,

nun, "window_test"+i ist ein String - Deine Klasse erwartet aber wohl eine MC-Referenz. Probiers mal so:
Code:
this["window_test" + i]

Wenn ich mir die Sache recht betrachte, brauchst Du eigentlich nicht für jedes Fenster eine neue Instanz Deiner Klasse - bzw. könntest Du die Methode "makeWindow" statisch deklarieren und eine Referenz auf den erstellten MC zurückgeben.

Eine eigene Instanz pro Fenster macht nur Sinn, wenn Du die Dinger auch nach dem Erstellen über Klassenmember manipulieren/handeln willst und nicht nur mit den erstellten MC Instanzen arbeitest. Du könntest zudem darüber nachdenken, Deine Klasse von MovieClip abzuleiten, um Fenster-Objekt und Fenster-MC in einem Objekt zu verwalten.

Gruß
.
 
ok, so gehts :)
Jetzt aber nochmal zum löschen eines Fensters. Ich habe das Fenster ja mit createEmptyMovieClip erstellt, müsste es ja demnach mit removeMovieClip auch wieder löschen können. Jedoch ist das einzige was gelöscht wird der close-button.
PHP:
clipHolder.window.functions.buttons.close_win.onRelease = function() {
			removeMovieClip(clipHolder);
//removeMovieClip(this._parent._parent._parent._parent);
			trace(clipHolder);
		};
Wie kann ich das Fenster denn jetzt wieder entfernen
this._parent._parent._parent._parent verweist auf mein Fenster (z.B. _level0.window_test1 oder _level0.window_test2) müsste also das richtige treffen.

thx inctube
 
Hi,

wenn this._parent._parent._parent._parent wirklich auf das Fenster verweist (lass es Dir per trace ausgeben, dann siehst Du es), müsste es mit:
Code:
this._parent._parent._parent._parent.removeMovieClip();
gehen.

Du solltest Deine Fenster lieber komplett in der Klasse verwalten, dann sparst Du Dir solche umständlichen Konstrukte mit etlichen "_parent". ;)

Beispiel:
Code:
class Fenster {

    private var win:MovieClip;
    private var closeBut:MovieClip;
    public static var wincount:Number = 0;

    public function Fenster(ziel:MovieClip) {
        Fenster.wincount ++;
        win = ziel.createEmptyMovieClip("win" + Fenster.wincount, ziel.getNextHighestDepth());
        closeBut= win.createEmptyMovieClip("but", 1);
        var that:Fenster = this;
        closeBut.onPress = function() {
            that.entferne();
        }
    }
    private function entferne():Void {
        win.removeMovieClip();
        delete this;
    }
}

Gruß
.
 
Ok geht...
Aber was bitte ist der Unterschied zwischen
PHP:
this._parent._parent._parent._parent.removeMovieClip();
und
PHP:
removeMovieClip(this._parent._parent._parent._parent);
Das ist mal wieder sehr komisch :)

gruß inctube
 
... eigentlich sind die beiden Methoden arbeitsgleich. Teste:
Code:
this.createEmptyMovieClip("foo", 1);
foo.createEmptyMovieClip("bar", 1);
foo.bar.attachMovie("but", "but", 1); // sollte ein freigegebener MC mit kleiner Form sein
foo.bar.but.onPress = function() {
	var p = this._parent._parent;
	trace(p);
	p.removeMovieClip(); // oder wahlweise eben:
	// removeMovieClip(p);
}

Gruß
.
 

Neue Beiträge

Zurück