Mehrere externe SWFs übereinander?

FlorianR

Erfahrenes Mitglied
Hallo Zusammen,

momentan beschäftige ich mich mit externen SWFs.

Ich lade also eine externe SWF (galerie-button.swf) und benenne den MC ebenso:

PHP:
this.createEmptyMovieClip("galerie-button",1);
this.galerie-button._x = 35;
this.galerie-button._y = 320;
this.galerie-button.loadMovie("galerie-button.swf");

nun möchte ich, bei einem click auf diese SWF wiederum eine weitere SWF laden, die allerdings über der gerade erstellten liegt (wie ein Fenstersystem aus Windows).

Ist folgendes möglich:

PHP:
this.createEmptyMovieClip("galerie-button",1);
this.galerie-button._x = 35;
this.galerie-button._y = 320;
this.galerie-button.loadMovie("galerie-button.swf");

this.galerie-button.on(release){
       this.createEmptyMovieClip("2fenster",1);
       this.2fenster._x = 35;
       this.2fenster._y = 320;
       this.2fenster.loadMovie("fenster.swf");
}

? Dazu muss man sagen, dass ich gerade erst mit Flash bzw ActionScript anfange, es können also diverse Fehler vorhanden sein.. ich würde mich freuen, wenn mir jemand ein wenig unter die Arme greifen kann.

Danke im Voraus,
Florian
 
In dem Fall musst jeweils die nächst höhere Tiefe suchen (getNextHighestDepth() Funktion). Zum Beispiel so:

Code:
var fensterCount:Number = 1;

gallerieButton.onRelease = loadNewSWF();

function loadNewSWF() {

var newDepth:Number = this.getNextHighestDepth();
var newFenster:MovieClip = this.createEmptyMovieClip("fenster" + fensterCount, newDepth);

newfenster._x = 35;
newfenster._y = 320
newfenster.loadMovie("fenster.swf");
fensterCount++;
}
Gruss
 
this.createEmptyMovieClip("galerie-button",1);
Anmerkung: Objektbezeichner sollten keinen Bindestrich ("-") enthalten - sonst wüsste der Parser nicht, ob er bei so etwas:
Code:
this.galerie-button
Die Variable "button" von der Variable "this.galerie" abziehen soll ... ;)

Es ist möglich, Objekte mit solchen Namen zu erzeugen, dann muss allerdings über die Array-Zugriffsoperatoren darauf zugegriffen werden:
Code:
this["galerie-button"]

Gruß
.
 
Ich habe das mal ausprobiert und es klappt auch soweit (fast)...

beide SWFs öffnen sich, allerdings nicht bei einem klick, sondern direkt beim starten.

PHP:
// Läd externe SWFs

// Galerie Button
this.createEmptyMovieClip("galerieButton",1);
this.galerieButton._x = 35;
this.galerieButton._y = 320;
this.galerieButton.loadMovie("galerie-button.swf");
this.galerieButton.onRelease = loadGalerie();

var fensterCount:Number = 1;

// Galerie
function loadGalerie() {

var newDepth:Number = this.getNextHighestDepth();
var galerie:MovieClip = this.createEmptyMovieClip("fenster" + fensterCount, newDepth);

galerie._x = 10;
galerie._y = 10
galerie.loadMovie("galerie.swf");
fensterCount++;
}

Danke im Voraus :- )
 
Zuletzt bearbeitet:
this.galerieButton.onRelease = loadGalerie();
Was soll das sein? Wenn Du dem Ereignis onRelease die Funktion "loadGalerie" zuordnen willst, musst Du sie ohne Klammern notieren (sonst wird die Funktion nicht zugewiesen, sondern sofort ausgeführt). Ich sehe in Deinem Code allerdings nirgendwo eine Funktion dieses Namens ...

Gruß
.
 
Die Funktion ist doch vorhanden:

PHP:
function loadGalerie() {

var newDepth:Number = this.getNextHighestDepth();
var galerie:MovieClip = this.createEmptyMovieClip("fenster" + fensterCount, newDepth);

galerie._x = 10;
galerie._y = 10
galerie.loadMovie("galerie.swf");
fensterCount++;
}

Ich habe nur noch nicht raus wie die Funktion per klick aufgerufen wird.

Mit this.galerieButton.on(press,release,etc){

}

geht es auch nicht :-/
 
Sorry, ich habe die Funktion übersehen, zumal Du in diesem Codeausschnitt anscheinend Zeitleisten- und Objektcode mischst.

Zuweisen kannst Du die Funktion entweder von aussen:
Code:
meinButton.onRelease = loadGalerie;
oder
Code:
meinButton.onRelease = function() { loadGalerie(); }
- oder (wenn Du das Ereignis auf der Buttoninstanz verarbeiten willst:
Code:
// Auf der Button-Instanz:
on(release) {
    _root.loadGalerie(); // bzw. _parent oder kein Pfad, je nachdem, wo sich der Button relativ
    // zur Funktion befindet und ob es sich um eine Schaltfläche oder einen MC handelt.
}

Gruß
.
 
Nur zum Verständnis:
meinButton.onRelease = loadGalerie;
Hattest du geschrieben, dürfte aber "loadGalerie();" heissen - oder? Nicht das ich jetzt etwas durcheinander bringe.

Kann ich sonst auch die zweite (galerie) externe SWF über die erste (button) externe SWF öffnen?
 

Neue Beiträge

Zurück