Attendre la fin d'un son pour enchainer le script
Bonjour à tous,
J' essais d'exprimer mon problème au mieux. Je souhaite créer un fichier html contenant du javascript pour afficher un questionnaire à mes élèves (donc pas utile sur le web, quoique...). Avant de lancer mon questionnaire, je lance un générique. Hors les questions sont lancées très peu de temps après mais pendant le générique, ce que je veux éviter 8O. Voici un extrait du code source :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
function VerifPlugIn(ExtensionFile){
var IsEnabled = true;
if (navigator.appName == "Netscape")
{
IsEnabled = false;
for(var x=0;(x<navigator.mimeTypes.length && !IsEnabled);x++)
{
if(navigator.mimeTypes[x].suffixes.indexOf(ExtensionFile)>=0)
IsEnabled = navigator.mimeTypes[x].enabledPlugin;
}
}
return IsEnabled;
}// VerifPlugIn -------------------------------------------
function PlaySound(MyName,MyExtension,MyLoop){
var AudioEnable = VerifPlugIn(MyExtension),TheLoop = '';
if (navigator.appName == "Netscape" && MyLoop==1) TheLoop='true';
if (AudioEnable) { eval('document.getElementById("'+ MyName +'").play(' + TheLoop + ')'); }
}// PlaySound ---------------------------------------------
function presente(){
var phrase = "<br><br>La boite à questions<br> Temps total : " + tempsTotal + " secondes";
phrase += "<br><br><br><form><input type=\"button\" value=\"go !\" onClick=\"depart();\"></form>";
document.getElementById("annonce").innerHTML = phrase;
}// presente -----------------------------------------------
function depart(){
PlaySound("introduction", 'wav', 0);
// quand la musiquette est finie on peut lancer go()
go();
} |
bien sûr dans PlaySound("introduction", 'wav', 0), "introduction" fait référence à <EMBED id="introduction" SRC="introon.wav" MASTERSOUND HIDDEN="true" LOOP="false" AUTOSTART="false"> ailleurs dans le code. 8-)
Tout fonctionne bien, SAUF que dans la fonction depart(), je veux que la fonction go() soit lancée quand et seulement quand le générique lancé par PlaySound("instruction", 'wav', 0) sera terminé.
Je pense qu'il faut formuler un peu différemment... je sais que dans DELPHI, je fait appel à un évènement 'Notify_Event' pour signaler au programme que la musiquette est terminée. Mais comment faire en javascript ?:hola:
Merci d'avance pour considérer ce problème.
Enchainement d'un script après un son
J'ai testé une autre méthode glanée sur le web, elle consiste à mettre le scipt en pause un certain temps.
Il faut, au préalable, connaitre la durée en millisecondes de la musiquette. Voici l'extrait du code :
Code:
1 2 3 4 5 6 7 8
| function pausecomp(millis)
{
var date = new Date();
var curDate = null;
do { curDate = new Date(); }
while(curDate-date < millis);
} |
Merci ;)