Externer Film (.swf) erst nach Ablauf einer Animation starten?

Anthony

Mitglied
Hallo,

ich möchte über einen Button einen externen Film starten, nachdem ein dafür vorgesehener animierter "Monitor" oder "Fernseher" fertig ist - entsteht aus dem "Nichts" als Tween.
Momentan startet Beides parallel, ich blende lediglich den externen Film solange bis der "Monitor bereit" ist aus.
Eine Überlegung wäre, den externen Film um 2 sek verzögert zu starten?
Gibt es eine sinnvolle Möglichkeit?

Einen für jeden Tipp dankbaren Gruß
Anthony
 
Hi,

entweder, Du startest im letzten Frame Deiner Monitor-Animation eine Funktion, in der der externe Film geladen wird, oder Du verzögerst das Laden mit einem Intervall:
Code:
ladeFilmVerzoegert("deinfilm.swf", container, 2000);

function ladeFilmVerzoegert(src, ct, delay) {
  clearInterval(this.iv);
  this.iv = setInterval(this, "ladeFilmDirekt", delay, src, ct);
}

function ladeFilmDirekt(src, ct) {
  clearInterval(iv);
  ct.loadMovie(src);
}

Am elegantesten wäre es wahrscheinlich, Du würdest den Film zwar direkt laden, aber zunächst ausgeblendet lassen. Nach Ablauf Deiner Animation kann der eingeladene Film dann eingeblendet werden.

Gruß
.
 
Hallo,

vielen Dank! Mit dieser Lösung komme ich klar, jetzt kann ich die Verzögerung passend einstellen!

entweder, Du startest im letzten Frame Deiner Monitor-Animation eine Funktion
Das hatte ich anfänglich so gemacht, aber mittlerweile sind es 8 externe Filme und jedes Mal einen Monitor für einen neuen Film basteln ist zu umständlich, bzw. unclever.

Am elegantesten wäre es wahrscheinlich, Du würdest den Film zwar direkt laden, aber zunächst ausgeblendet lassen. Nach Ablauf Deiner Animation kann der eingeladene Film dann eingeblendet werden.
Ich denke, das habe ich bislang so gemacht
Momentan startet Beides parallel, ich blende lediglich den externen Film solange bis der "Monitor bereit" ist aus.
Mein Ziel-MC blende ich anfänglich aus (Alpha=0%) und am Ende der Monitor-Animation, Ziel-MC wieder ein (Alpha=100%). Leider fehlt mir dann aber der Anfang der Filme.
Oder meintest Du das noch anders? Bin gerne bereit eine beste Lösung zu finden!
...Oder ich müsste am Anfang der Filme eine Pause einfügen...

Ansonsten kann ich sehr gut mit Deiner Verzögerungslösung leben! Vielen Dank für Deine Hilfe!

Einen dankbaren Gruß
Anthony
 
Hallo,

scheinbar stehe ich vollends auf der Leitung.
Ok, sehe ich ein, ich sollte den Film vorher anhalten...
stop() läuft so nicht, dafür müsste ich doch erst den ganzen Film geladen haben?
Sollte ich dafür einen Preloader verwenden? Hast Du einen konkreten Tipp?


Einen dankbaren und hoffnungsvollen Gruß
Anthony
 
Hallo,

ich bräuchte noch etwas Hilfe!
Code:
_root.buehne.lade_1.onPress = function() {
	gotoAndPlay(81); //Animation des Monitors
	_root.buehne.ladeziel.loadMovie("film.swf");
	ladestatus();
};
ladestatus = function () {
	loader1.onEnterFrame = function() {
		geladen = _root.buehne.ladeziel.getBytesLoaded();
		zuladen = _root.buehne.ladeziel.getBytesTotal();
		prozent = Math.round(geladen/zuladen*100);
		if (prozent>=100) {
			delete this.onEnterFrame;
			stop();
		}
	};
};
...funktioniert auch nicht - mit dem "stop();" hält der gesamte Film an...ich verstehe noch nicht, wie ich den externen Film anhalten und den Rest weiterlaufen lassen kann.

Für jeden weiteren Tipp einen sehr dankbaren Gruß
Anthony
 
Hallo,

richtig, mit
PHP:
stop();
hälst du den ganzen Film an.

Du kannst den geladenen MC / container mit deinem Instanznamen ansprechen:
PHP:
_root.movie.play();

Falls ich das jetzt richtig verstanden habe.

VG
benchmark
 
Hallo,

erstmal DANKE!
Nachdem ich einiges nachgelesen und das ganze mehrfach ausprobiert habe, habe ich den Grund, den ich noch nicht ganz verstehe, gefunden, warum ich den externen Film nicht stoppen konnte
Code:
_root.buehne.ladeziel.stop();
Es liegt an den externen .swf! Eigentlich sind diese für das Streaming optimiert - nur lassen sie sich dann nicht steuern [stop(); / play(); ]. Nur wenn ich die Filme in die Zeitleiste importiere, funktioniert so etwas:
Code:
onClipEvent (load) {
this.stop();
this._visible=false;}
und dann kann ich das ganze starten, wenn der Monitor fertig ist.

Ich habe verschiedene Arten versucht die Filme einzubinden - nur bei einem Import in die Zeitleiste funktioniert es.

Das habe ich momentan im "test.swf"
Code:
var netCo:NetConnection = new NetConnection();
netCo.connect(null);
var netSt:NetStream = new NetStream(netCo);
film3.attachVideo(netSt);
netSt.setBufferTime(5)
netSt.play("test.flv");

Gibt es auch hierfür eine Lösung oder sollte ich einfach die Filme in die Zeitleiste importieren und diese dann preloaden? Gibt es einen besseren Ansatz? Welches Format bzgl. der Bildqualität würdet Ihr empfehlen?

Einen weiterhin sehr dankbaren Gruß
Anthony
 
Zurück