Skript kurz anhalten


Killer-Man

Erfahrenes Mitglied
#1
Ich lasse in meiner Flash Datei verschiedene Videos abpsielen, die in ein MediaDisplay geladen werden. Sobald ein Video zu Ende ist, wird es hiermit automatisch wieder gestartet:

Code:
var listener = new Object();
listener.complete = function(objetEvt) {
	 video.play(0);
};
video.addEventListener("complete", listener);
Jetzt möchte ich aber, dass das Video nur erneut geladen wird, wenn 10 Sekunden lang nichts geschieht (also z.B. nicht auf den MC "Video 2" geklickt wird).

Gibt es irgendeine einfache Lösung dafür?
 

Jens B.

Erfahrenes Mitglied
#2
Du kannst einen Timer verwenden, welcher im complete-Listener gestartet und bei jeder Aktion, sollte er grade laufen, gestoppt wird. Das Event wird dann nur gefeuert, wenn der Timer nicht unterbrochen wurde. Stoppst du ihn nicht bei jeder Aktion sondern stoppst ihn kann so immer nach 10 sek Stillstand reagiert werden, nicht nur nach dem Video.

Mehr zu Timern findest du übrigens auch hier (ab Seite 3):
http://www.tutorialflash.de/?p=77

Gruß
jens
 

Killer-Man

Erfahrenes Mitglied
#3
Mehr zu Timern findest du übrigens auch hier (ab Seite 3):
http://www.tutorialflash.de/?p=77
Entsprechend der Seite habe ich mal folgendes probiert:

Code:
var myInterval = setInterval(zaehlen, 10000);
function zaehlen()
{
	video.play(0);
}
Funktioniert soweit. Allerdings läuft das Video dann ja nur 10 Sek. und nicht, dass 10 Sek. Pause ist nachdem das Video zu Ende ist.
Ich hab dannach das hier probiert:

Code:
var myInterval = setInterval(zaehlen, video.totalTime*1000+10000);
function zaehlen()
{
	video.play(0);
}
Leider läuft das Video dann immer noch nur 10 Sek :(
Und wenn ich die "+10000" mal rausnehme (also Videoneustart sofort nach Videoende), läuft das Video erst gar nicht...
(irgendwie wird das "video.totalTime" wohl nicht akzeptiert)

Wo liegt mein Fehler?
 

Jens B.

Erfahrenes Mitglied
#4
Erstmal benutz lieber Timer, keine Intervalle. Dann startest du den Timer (so wie oben beschrieben) erst im video.addEventListener("complete", listener);

Sowohl Intervalle als auch Timer solltest du in ihrer ausgeführten Funktion selbst wieder stoppen, da sonst natürlich alle 10 Sekunden die Funktion wieder aufgerufen und das Video wieder ab Position 0 abgespielt wird.
 
Zuletzt bearbeitet: