Mehrere SWF laden und nacheinander abspielen [Flash 11]
| Beiträge: 0 Registriert: Nov 2019
| 29.11.2019, 21:22
Guten Abend
Einen Thread zu meinem Anliegen gibt es bereits, allerdings ist es ein älterer und ohne Antwort. Darum verusche ich es nochmals.
Wie ist es möglich, mehrere SWF zu laden und nacheinander abzuspielen?
Dabei stelle ich mir den Ablauf so vor:
- Lade SWF 1+2+3+...
- Wenn geladen, starte automatisch oder nach Eingabe die SWF 1
- wenn SWF 1 am Ende ist, starte SWF 2
- etc.
Dabei ist es aber wichtig, dass wirklich exakt die Framerate eingehalten wird (alle SWF sind natürlich gleich).
Vielen Dank für eure Hilfe.
Grüsse
Yuna | | | Beiträge: 59 Wohnort: Emmendingen Registriert: Oct 2018
| 30.11.2019, 10:29
Ich gebe mal eine Kurzzusammenfassung:
1. zuerst brauchst du eine Methode, um von einem swf aus andere zu laden.
var request:URLRequest = new URLRequest("http://www.url.de/Pfad/Film.swf");
var Filmlader:Loader = new Loader();
Filmlader.contentLoaderInfo.addEventListener(Event.COMPLETE, LadenBeendet);
// Filmlader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, NichtGefunden);
Filmlader.load(request);
addChild(Filmlader);
2. Eine Funktion, die reagiert, wenn ein Teilfilm geladen ist
function LadenBeendet(evt:Event) {
var Film:Movie = (evt.currentTarget as MovieClip);
Film.play(); // Eventuell unnötig, wenn der Film sich selbst startet?
}
3. Der Film kriegt einen Rückbezug aufs Hauptprogramm
Das kann entweder im Film selbst geschehen:
var ParentLoader:Loader = loaderInfo.loader;
var Parent:MovieClip = null;
if (ParentLoader!=null)
Parent = (ParentLoader.parent as MovieClip);
oder in der Funktion LadenBeendet von 2. künstlich reingeschrieben werden:
function LadenBeendet(evt:Event) {
(...)
Film["Parent"] = this; //weil die Funktion im Hauptprogramm steht
}
4. Schließlich kommt noch eine Funktion ins Hauptprogramm, um nach Ablauf des Films den nächten zu laden:
function LoadNext(AlterFilm:MovieClip) {
AlterFilm.ParentLoader.unload();
// weiter wie unter 1. mit dem nächsten Film
}
5. Fehlt nur noch ein Event, um LoadNext unter 4. auszulösen.
Eventuell kann das in das letzte Frame jedes Films eingebaut werden in der Form:
Parent.LoadNext(this);
Ich hoffe, dass dieser Ansatz zur richtigen Lösung führt.
Indy | | | Beiträge: 1 Registriert: Dec 2019
| 03.12.2019, 18:48
Hallo Indy
Erstmal herzlichen Dank für deine rasche und ausführliche Rückmeldung! Das weiss ich sehr zu schätzen!
Beim Forum funktionert die "Passwort zurücksetzen" Funktion aktuell nicht, deswegen kann ich dir erst jetzt antworten. Musste extra einen neuen Account anlegen! -.-
Ich bin leider nicht so fit in ActionScript und verstehe nicht alle Zeile so ohne weiteres. Deswegen habe ich einfach mal versucht folgende Testumgebung zu machen
Test.swf // Mutter SWF, mit dem Code, welche definiert wann gestartet wird
Test1.swf // 1. Film/Animation
Test2.swf // 2. Film/Animation
Test3.swf // 3. Film Animation
Problem 1
"var Film:Movie = (evt.currentTarget as MovieClip);"
funktionert so nicht, gibt ein Fehler.
hab es umgeschrieben auf "var Film:MocieClip..." dann gehts
Problem 2
Wenn der Film (Test1) sich selbst startet, tut er das nach dem laden (in Test) automatisch. Darf er aber nicht. Sondern erst wenn der Befehl zum starten gegeben wird.
Film.stop(); funktioniert da leider auch nicht
Problem 3
Steht im Film am Anfang ein stop(); drin, kann ich ihn nach dem laden z.B. nicht starten mit "Film.gotoAndPlay(2);". Warum?
Problem 4
Wenn kein Stop im Film ist, dann wiederholt sich der Film immer und immer wieder. Wie bekomm ich ihn beim letzten Frame zum stoppen?
Im Film selbst am Ende ein "stop()" setzen würde gehen, aber ist eigentlich nicht das Ziel.
Problem 5
Film 2 darf nicht erst laden, wenn Film 1 beendet ist. Es sollen alle Filme zuerst laden, dann nacheinander abspielen (ohne Zeitverzögerung!)
Vielen Probleme für einen Newbie :D
Ich versuche es weiter zum Laufen zu brignen und werde das Ergebnis sicher posten!
Grüsse
Yuna | Geändert von Yuna2 am 03.12.19 um 18:49 Uhr | |
|
| Ähnliche Beiträge zum Thema | 13.09.2022 - Rennier 12.01.2021 - Indy_Crossover |
|
Flashhilfe.de Flash Platform Tipps & Tutorials Flash Platform Andere Programmiersprachen Jobangebote Diskussionen
Flashhilfe News 
Regeln & Bedingungen
|