IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Attendre la fin d'un son pour enchainer le script


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Par défaut 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 . Voici un extrait du code source :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

    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 ?
    Merci d'avance pour considérer ce problème.

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    mettre un timeout qui dure le temps du son ( et le clear dès le début de go

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. WMPLib: attendre la fin du fichier son
    Par gastoncs dans le forum VB.NET
    Réponses: 0
    Dernier message: 15/07/2011, 14h31
  2. [PHP 5.0] Attendre la fin d'une fonction pour en realiser une autre
    Par keaton7 dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2009, 16h06
  3. attendre la fin d'un son
    Par Yepazix dans le forum Débuter
    Réponses: 16
    Dernier message: 27/03/2009, 00h17
  4. Réponses: 4
    Dernier message: 08/06/2007, 15h36
  5. AS - Attendre la fin d'un onLoad pour faire un return
    Par ChrOnOs83 dans le forum Flash
    Réponses: 9
    Dernier message: 31/08/2006, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo