Délai avant de déclencher un évènement après l'enfoncement d'une touche.

elTrakos Messages postés 6 Date d'inscription jeudi 30 avril 2009 Statut Membre Dernière intervention 16 mai 2009 - 16 mai 2009 à 00:02
WhiteMagus Messages postés 764 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 5 février 2010 - 19 mai 2009 à 23:17
Bonjour.

Je souhaite lire un fichier audio après avoir appuyé sur une touche du clavier.J'aimerais par la même occasion déclencher un compte à rebours (dont la durée serait aléatoire) et qui une fois arrivé à 0 déclencherait la lecture d'un deuxième fichier audio. Quelqu'un'un sait-il faire ça?

Je développe en AS 2.0. et voici mon script si cela peut vous éclairer sur la marche à suivre:

var ecouteur_clavier:Object = new Object();
var ecouteur_clavier_bis:Object = new Object();
ecouteur_clavier.onKeyDown = function() {
   
     if(Key.getCode()==65){
         playing_sound.start();
         playing_sound.loadSound(media_playlist[0].fichier,true); // media_playlist est un tableau créé plus haut dans mon      //code et dont les entrées renvoient à celles d'un tableau xml où sont stockés mes fichiers audio    

                                                                                                
                                                                                             
         }

J'imagine qu'il faut recourir à la méthode getTimer() pour connaître le temps écoulé depuis l'enfoncement de la touche du clavier et la lecture du premier fichier audio. Il faudrait ensuite que si ce temps dépasse une certaine durée (aléatoirement définie) le deuxième fichier audio soit joué. J'ai essayé quelque chose dans c genre là mais ça ne donne rien:

var ecouteur_clavier:Object = new Object();

var ecouteur_clavier_bis:Object = new Object();

ecouteur_clavier.onKeyDown = function() {

if(Key.getCode()==65){

         playing_sound.start();

         playing_sound.loadSound(media_playlist[0].fichier,true);
if (Key.isDown(Key.65)){ 

//ce Key.isDown me renvoie un message d'erreur dans la fenêtre de sortie: il manque un "." ou une ")" à placer quelque //part alors que la syntaxe semble pourtant bonne

getTimer();
if(getTimer>=Math.random(1000, 15000){

// Ici la fenêtre de sortie me demande de rajouter une parenthèse quelque part mais je ne vois pas où

playing_sound.start();


         playing_sound.loadSound(media_playlist[21].fichier,true);
}
}
};

}

Je voue remercie par avance pour votre aide en espérant avoir été assez clair dans la description de mon problème.

1 réponse

WhiteMagus Messages postés 764 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 5 février 2010
19 mai 2009 à 23:17
Hello.

Tu peux faire un simple setTimeout, avec un nombre de millisecondes aléatoires (Math.random()*10000) : pour un temps compris entre 0 et 10 secondes.

Bye ;)
0
Rejoignez-nous