Starte og slutte script på bestemt tidspunkt.

Tags:    javascript

Hej.

Jeg har en javascript flashplayer på min side, til at afspille et musiknummer.

Det skal dog være sådan at denne flasplayer kun afspiller musikken indenfor et bestemt tidsrum.

Jeg kan sagtens få playeren til at starte og slukke på mine bestemte tidspunkter, men det kræver dog at siden bliver refreshed, hvilket ikke var meningen.
Er der en smart måde man kan gøre dette ?

Jeg har denne kode foreløbigt, som virker, når bare der bliver refreshed:

<script type="text/javascript">
var new_time = new Date().getTime();
var new_time = new_time / 1000;
var inno_start = <?php echo $inno_start_php; ?>;
var inno_end = <?php echo $inno_end_php; ?>;

if (new_time > inno_start && new_time < inno_end) {
document.write("<li><div id='flashPlayer'></div>");

var so = new SWFObject("js/playerMini.swf", "mymovie", "75", "30", "7", "#FFFFFF");
so.addVariable("overColor","#b42222");
so.addVariable("playerSkin","3");
so.addVariable("autoPlay", "yes");
so.addVariable("soundPath", "song.mp3");
so.write("flashPlayer");
document.write("</li>");
}
</script>

På forhånd tak.



3 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Grunden til at du refresher siden er at du sender variablerne med Flashvars. Så kommer de kun ind i flash'n een gang. Du skal lave en listener i selve flashkoden med ExternalInterface.
Så kan du sende data til en Boolean i javascript som flash så laver listen på. Alternativt kan du bruge ExternalInterface til at sende en js-request.

Det kræver lige en times læsning og et par timers test, men det er ret nemt at få til at virke.

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/external/ExternalInterface.html



Tak for dit svar. Jeg har kigget på det og men jeg synes det ser alt for kompliceret ud, især fordi det ikke er min egen flashkode jeg skal ind og ændre i.

Men først og fremmest, hvordan laver jeg det sådan at et script bliver kørt, indenfor mit tidsrum, uden at jeg skal refreshe.
Altså hvordan får jeg dynamisk vist noget html på siden, når tidsrummet begynder. ?
Det er hovedproblemet lige nu.



Det er relativt kompliceret at lave en externalinterface, men det er den eneste metode jeg kender som er bygget til at sende variabler mellem flash og js.

Kan du måske alternativt lave en setTimeOut funktion, som hele tiden loop og som står og kigger på om dine variabler er ens.

http://www.w3schools.com/js/js_timing.asp
Fold kodeboks ind/udKode 


husk du skal selv starte funktionen første gang.




t