2012-04-04 10 views
0

Ich habe ein .swf Banner eingebettet in meinem XHTML und ich brauche es nach 20 Sekunden wieder zu spielen, wenn der Benutzer diese Seite noch sieht, wird er die Animation wieder sehen. Es muss eine Schleife oder etwas sein, damit die Animation 20 Sekunden nach dem Ende wieder und wieder spielt. Kann dies mit Javascript erreicht werden?Replay ein .swf nach 20 Sekunden

Dank!

Antwort

1

Vorausgesetzt, dass Sie eine eindeutige ID für den Flash-Player können Sie einfach dies tun könnte:

var player = document.getElementById("playerID"); 
var movieLength = 10000; // in ms, change this as needed 
var delay = 20000; // in ms 

function playMovie() { 
    player.play(); 
    window.setTimeout(playMovie, movieLength + delay); 
}; 

playMovie(); // Assuming it doesn't start automatically. 

Dies ruft die play() Funktion auf dem Spieler alle 20 Sekunden (plus Filmlänge und Verzögerung).

+0

Dieses es alle 20 Sekunden wiederholen wird, müssen Sie die Länge des Films selbst hinzuzufügen. Auch das wird es nur einmal tun –

+0

Editiert für Infinite Replay. Vielen Dank! Da ich die Länge des Films nicht kenne, überlasse ich das dem Fragesteller. – kiswa

1

Es kann, aber es scheint sinnvoller zu sein, nur die <object/embed> Tag-to-Loop zu sagen. http://helpx.adobe.com/flash/kb/flash-object-embed-tag-attributes.html

Wenn Sie keinen Zugriff auf die Flash-Quelle haben (um am Ende des Films 20 Sekunden Leerstelle hinzuzufügen), dann würden Sie JS benötigen.

+0

Leider habe ich keinen Zugriff auf die .fla-Datei. Der Kunde hatte dieses .swf seit dem, wer weiß wann ... also muss ich eine js Lösung verwenden. –

+0

Dann verwenden Sie den Vorschlag von Kiswa, zusammen mit den Kommentaren, die ich in der Antwort gepostet habe. –

0

Finden Sie heraus, wie lange der Film in Sekunden dauert. Multiplizieren Sie das mal mit 1000 und addieren Sie 20000 dazu.

die Zahl nehmen und es in hier setzen:

var timing = 30000; //whatever the 20000 + the number you found before was, put it here 

$(function() { 
    window.setInterval(function() { 
     $("#myPlayer").get(0).play(); 
    }, timing); 
}); 
Verwandte Themen