Creo que si se va a reproducir el sonido según una condición dentro del temporizador, no será necesaria la función
PlaySound()
. En cuanto a la paralización de la cuenta regresiva utilizando el mismo botón, puedes utilizar una variable global en la cual se establecerá un valor inicial, por ejemplo, el valor booleano
true
; luego, cuando se ejecute la función, evalúa el valor de dicha variable; si es
true
, ejecutas el temporizador y cambias el valor de la variable por
false
, y cuando vuelvas a pulsar el botón una vez que ya esté ejecutándose la cuenta regresiva, establece el valor de la variable global en
true
para que cuando se vuelva a ejecutar el temporizador (al ser cíclico, se volverá a ejecutar automáticamente), detectes dentro del mismo el valor de la variable global, encontrando que su valor ahora es
true
y, por ende, se detendrá la ejecución del temporizador.
Código Javascript
:
Ver originalvar control = true; //La variable global
function cronometro() {
if (control){
var count = 20,
number = document.getElementById('numero'),
audio1 = document.getElementById("audio1"),
audio2 = document.getElementById("audio2"),
intervalo = setInterval(function(){
if(count == 0 || control){
clearInterval(intervalo);
audio2.play();
return;
}
count--;
number.innerHTML = count;
if (count == 10){
audio1.play();
}
}, 1000);
control = false;
}
else{
control = true;
}
}
Para evitar que se ejecuten las demás instrucciones una vez detenido el temporizador, se termina la ejecución de la función mediante la palabra reservada
return
.
Y solo como consejo, la próxima vez trata de mostrar solo la parte crítica del código. Cuando la gente ve bloques grandes de código, se desanima y decide no ayudar. No es algo que ocurre con todos pero sí con muchos; además, analizar código que no tiene que ver con el problema, solo conlleva a una pérdida de tiempo.
Un saludo