我試圖用我的遊戲中的一個按鈕來停止setTimeout,但是當我點擊按鈕時,我會回到菜單和計時器繼續。有人能幫助我嗎?在JavaScript中用按鈕取消超時
P.s.我一板缺;大量的代碼在中間,使其更小
this.stop();
///////////////////////////////////////////////////////////////////////////////////////////////////////
// gestion du temps
///////////////////////////////////////////////////////////////////////////////////////////////////////
this.leTimeOut = window.setTimeout(punir.bind(this), 31000);
this.lInterval = window.setInterval(afficherTemps.bind(this), 1000);
/////////////////////////
Cutted section
////////////////////////
console.info("!!! "+nbMatchs+" !!!");
this.txtItems.text = ""+(6-nbMatchs);
if(nbMatchs == 6){
window.clearTimeout(this.leTimeOut);
this.gotoAndStop("FinNiveau1");
}
return bonnePosition;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Fonction pour lancer la punition
///////////////////////////////////////////////////////////////////////////////////////////////////////
function punir(evt){
console.log("temps écoulé");
this.gotoAndStop("EchecNiveau1");
}
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Fonction d'affichage du temps
///////////////////////////////////////////////////////////////////////////////////////////////////////
this.txtTimer.text = "29";
function afficherTemps(evt){
this.txtTimer.text = parseInt(this.txtTimer.text)-1;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Fonction et écouteur du bouton Annuler
///////////////////////////////////////////////////////////////////////////////////////////////////////
this.btRetour.evenementClick = this.btRetour.on("click", onClicA);
function onClicA(evt) {
console.log("retour au menu");
clearTimeOut(this.leTimeOut);
evt.remove(); //retrait de l'écouteur (la méthode facile!)
this.parent.gotoAndStop("Intro");
}
你能將代碼作爲代碼塊置於問題中?從圖像中查看代碼是非常困難的。 – Matt
您應該提供代碼。否則,你會在那裏收集downvotes – Mojtaba
。現在應該更好 –