loadMovie, MC und springen in Szenen

astaluego

Erfahrenes Mitglied
Hallo allerseits!
Ich hab schon im Forum gesucht und hab was gefunden was nur annähernd ist also post ich jetzt mal nen neuen Thread!
Also... ich hab auf meiner Bühne im Hauptfilm ein MovieClip "menue" und auf meiner Actionebene hab ich einen Film geladen mittels
Code:
menue.loadMovie("test.swf");
funktioniert auch supergut.
Nun hab ich in "test.swf" einen Button "contact" und wenn man auf ihn drauf klickt soll die Szene "Kontakt" aufgerufen werden. Diese Szene befindet sich jedoch im Hauptfilm (also nicht im test.swf) .
Sop und meine Frage ist nun was mus sich tun, damit die Szene auch aufgerufen wird UND das Menü also test.swf immernoch in dieser Szene existiert sich jedohc nicht neu ladet (da in test.swf sich ein menü aufbaut und alles rumfliegt, darum möcht ich das es erst das letzte schlüsselbild anzeigt).
Ich denke bei folgendem liege ich richtig: der AS-Code für das liegt wohl oder übel im on(release) Code des Buttons "contact" im test.swf

danke für die, die sich die Zeit nehmen dafür.
 
Hi,

ich würde Die raten, bei solchen Konstruktionen auf Szenen zu verzichten, denn dafür sind sie nicht gemacht. (Ich bezweifle, ob Du ein Schlüsselbild erstellen kannst, das über mehrere Szenen gültig ist) Außerdem kannst Du von Deinem Button aus direkt keine Szene ansteuern, da die goto-Methoden des MovieClip-Objektes nur einen Parameter (Frame) implementieren. Das kannst Du mit zwar einem Wrapper umgehen (lege auf _root eine Funktion an, der Du Szenenname und Bildnummer übergibst und rufe Diese vom Button aus auf), aber auch dort gibt es Probleme: gotoAndPlay/Stop erwartet ein Stringliteral und akzeptiert keine Variablen für den Szenennamen. Du müsstest also mit einer Switch-Anweisung zwischen hartcodierten GotoAndPlay/Stop-Anweisungen umschalten.

Statt Szenen bieten sich z.B. einfach Bildbezeichner auf einer Zeitleiste an.

Gruß

.
 
Also mit hartcodierten Anweisungen hab ich mich bei der ganzen Menügeschichte angefreundet eine Zeile mehr wird nicht schaden.
Was ich eher dachte war, in szene 2 kann ich ja den gleichen mc erstellen also manuell und ich könnte ihn wieder mit loadMovie besetzen. Aber wie kann ich ihm sagen das er dann nicht von Anfang an spielen soll? Wenn ich das könnte wäre es wirklich toll. Und naja ich hab mal ein Flashbuch durchgearbeitet und dort stand für eine gute Struktur soll ich für jeden sublink eine Szene erstellen die dem home-layout gleich ist.
 
Aber wie kann ich ihm sagen das er dann nicht von Anfang an spielen soll?
Na ja, mit gotoAndPlay kannst Du ihm nach dem Laden sagen, ab wo er spielen soll:
PHP:
menu.loadMovie("sonstwas.swf");
menu.onLoad = function() {
    this.gotoAndPlay(13);
}
- für Ideal halte ich das dennoch nicht.

Nicht alles, was in Flashbüchern geschrieben steht, eignet sich für alle Zwecke oder ist unbedingt die eleganteste Lösung - meine Erfahrung hat gezeigt, dass Szenen und dynamische Inhalte in der Regel mehr Probleme schaffen, als sie lösen. Statt Szenen kann man z.B. übereinanderliegende MovieClips verwenden, zwischen denen man umschaltet, oder gleich externe SWF-Dateien, die bei Bedarf nachgeladen werden. Ich erlaube mit mal, in diesem Zusammenhang auf dieses Tutorial zu verweisen. ;)

Gruß

.
 
hm... also ich hab ein jezt ein dummy-film erstellt mit einem leeren movieclip und mit nur dem code ausgestattet welchen du oben gschrieben hast aber er ladet ihn trotzdem ganz.
hast du den Code geschrieben, als du zuerst den MovieClip angeklickt hast oder einfach sonst auf der Bühne?
 
Hi,

weder noch, ich habe ihn im Forum gepostet... ;) Spaß beiseite: das kommt nicht auf die Instanz, sondern direkt auf die Zeitleiste. Am besten wäre es, wenn Du Deine Datei einmal anhängen könntest; dann kann ich mal ein wenig damit rumfummeln und sicher die eine oder andere Lösung vorschlagen.

Gruß
..
 
voila ich hab in ueberladen.fla keine animation gemacht einfach ein stop. um im anderen film zu überpfrüfen ob erauch auf bild 11 springt.
 

Anhänge

Hi,

ja, mir ist ein Fehler unterlaufen: das onLoad-Ereignis bezieht sich bei MovieClips nur auf instanzierte Objekte aus der Bibliothek und nicht auf nachgeladene Filme. Man sollte also den Status des Ladens mit einer onEnterFrame-Methode überwachen. Statt getBytesLoaded() habe ich hier _framesloaded verwendet, da auch bei 100% der geladenen Bytes noch nicht sofort alle Frames zur Verfügung stehen und ich die onEnterFrame-Methode nur einmal aufrufen will:
PHP:
test.loadMovie("ueberladen.swf");
this.onEnterFrame = function() {
    if (test._framesloaded >= test._totalframes && test._framesloaded > 1) {
        test.gotoAndStop(11);
        delete this.onEnterFrame;
    }
}

Gruß

P.S.: Ach ja, achte bitte auf korrekte Groß-/Kleinschreibung und Zeichensetzung!
.
 
Zuletzt bearbeitet:
Zurück