Swf´s ins hauptdokument laden

emonem

Erfahrenes Mitglied
Hi,

brauch mal wieder eure Hilfe.
Hab ein Flash-Dokument gemacht, welches drei Buttons hat.
Sobald man die buttons drückt, werden externe swf dateien per loadMovieNum Aktion auf verschiedenen Stufen ins Hauptdokument geladen.
Das Skript für die Buttons ist:
PHP:
this.red_btn.onRelease = function() {
    _root._level2.play();
    _root._level3.play();
    _root._level4.play();
loadMovieNum("red.swf",2);
}

this.blue_btn.onRelease = function() {
	_root._level2.play();
    _root._level3.play();
    _root._level4.play();   
loadMovieNum("blue.swf",3);
}

this.green_btn.onRelease = function() {
	_root._level2.play();
    _root._level3.play();
    _root._level4.play(); 
loadMovieNum("green.swf",4);
}

Die externen swf dateien zeigen einen Bewegungstween eines Rechteckes, das sich bis zu einer bestimmten Stelle ins Dokument bewegt und sich dann wieder aus derm Dokument bewegt, sobald man einen anderen Button klickt. Dieser wird dann über unloadMovie aus dem Player geladen.
Das klappt auch alles.
Bislang ist es so, dass wenn ich einen Button klicke, sich die swf reinläd und sich dann abspielt. Wenn ich dann einen andern Button klicke, läd sich die neue swf hinein und parallel dazu spielt sich die voreherige swf bis zum schluß ab.
Ich will aber, dass wenn ich einen button drücke, sich die swf ganz normal ins dokument läd und sich abspielt. Sobald ich aber dann einen andern Button klicke, soll sich die vorherige swf zu ende abspielen und sich erst dann die neue swf ins dokument laden.

http://www.jaded-season.com/test.rar

Hoffe ihr könnt mir helfen. komme einfach nicht weiter.
Gruß
emonem
 
HI,

das laden von Unterfilmen per loadMovieNum ist nicht die optimale Methode.
Der Befehl ist sehr speziell auf gewisse, inzwischen überholte, Notwendigkeiten in der Applikationsentwicklung abgestellt. Also nichts für deine Zwecke.
Du solltest die Syntax mit --> loadMovie und einem als --> Container fungierenden MC ins Auge fassen. Unter den entsprechenden Suchbegriffen findest du alles was du brauchst.

Dein spezielles Problem kannst du dadurch lösen, das du auf dem letzten Frame deiner zugeladenen MovieClips eine Abfrage nach einer auf _root. gesetzten Variable durchführst.
Die Buttons laden nicht selbst, sondern setzen nur diese Variable, beispielsweise 1,2,3,4.
Initialisiere diese Variable auf dem ersten Frame deines Hauptfilmes mit zB. 0.
Auf den Buttons könnte dann folgender Code stehen (hier Butt. 1, ändere einfach die
Zahlen für die anderen):
PHP:
on(press)
{
if (_root.Status == 0)
{
_root.Status = 1;
var Pfad = _root.Status + ".swf";
_root.Container.loadMovie(Pfad);
}else
{
_root.Status = 1;
}
}

Auf dem ersten Frame deiner Unterfilme (das Frame muss auf einer durchgängigen Ebene liegen) initialisierst du eine Variable 'Selbst', mit der Nummer des Unterfilmes.

PHP:
Selbst = 1;
auf dem letzten Frame machst du dann die Abfrage:
PHP:
if ( _root.Status == this.Selbst)
{
this.gotoAndPlay(1);
}else{
var Pfad = _root.Status + ".swf";
_root.Container.loadMovie(Pfad);
}

Grüsse
B
 
Hi,

danke für deine Hilfe.Habe jetzt ein Container im Hauptdokument erstellt und meine swf´s über loadMovie in diesen hineingeladen.
Die Variablen hab auch so erstellt wie du es gesagt hast.
Klappt auch alles soweit.
Hab jetzt aber ein anderes Problem.Und zwar sollen sich die hineingeladenen rechtecke bis zu einer bestimmten Stelle (frame 10) abspielen und dann stehen bleiben. Wenn ich dann einen anderen Button klicke soll sich der Rest der Animation abspielen (frame 11-20) und sich dann die neue swf hineinladen. Habs mit stop(); in dem entsprechenden Frame versucht klappt aber nicht da ich dann keinen Aktion mehr über die Buttons auslösen kann. Hilfe!

Hab die aktuelle Datei nochmal hochgeladen.
http://www.jaded-season.com/test2.rar

Gruß
emonem
 
Wenn du ansonsten exakt der Logik gefolgt bist, die ich dir beschrieben habe, dann kannst du auf deinem Frame 10 folgenden Code stellen:
PHP:
stop();
this.onEnterFrame = function(){
if(_root.Status != Selbst){
this.play();
delete this.onEnterFrame;
}
}

...
 
Hi,

bin deinen Anweisungen gefolgt. Es klappt alles perfekt.

Da ist nur noch ein kleiner Schönheitsfehler.
Ich möchte das sich beim Aufrufen des Hauptdokuments die "1.swf" selbstständig hineinläd und dann bei dem bestimmten Frame (10) stehen bleibt ohne das ich vorher auf einen button geklickt habe.
Danach soll das hineinladen der swf´´s über die Buttons ganz normal steuerbar sein.

Hab versucht im Hauptdokument dieses nachträglich einzufügen.
PHP:
loadMovie("1.swf", "Container");
stop();

Die swf wird zwar hineingeladen aber bleibt nicht an der gewünschten Stelle stehen sondern spielt sich komplett ab.
Warum?
 
Zurück