2017-01-02 3 views
0

J'ai simple question qu'il est devenu complected pour moi qui est:Comment désactiver une fonction pendant X secondes lorsqu'un autre bouton cliquait sur As3?

J'ai une fonction qui est appelée et courir après environ 11 secondes:

var myTimeoutClickObject = setTimeout(clickObject,11000); 
function clickObject():void{ 
    //My code 
} 

J'ai aussi un bouton de réinitialisation que je fait une Cliquez sur fonction pour elle:

reset_btn.addEventListener(MouseEvent.CLICK, reset); 
function reset(e:MouseEvent):void{ 
    //My code 
} 

maintenant, je veux faire la fonction clickObject() désactivée pour environ 11 secondes sur chaque fois que je clique sur le bouton reset_btn.

J'apprécie vraiment, si vous pouvez m'aider dans cette affaire!

Merci d'avance!

+0

Vous savez ce qu'est un booléenne est? Définir une variable booléenne pour indiquer que le bouton de réinitialisation a été cliqué et simultanément ajouter une minuterie qui ira pendant 11 secondes. Lorsque ce délai est écoulé, retirez la minuterie et réinitialisez la valeur booléenne. Ensuite, faites en sorte que votre fonction que vous essayez de désactiver ne fonctionne que si ce booléen est dans l'état correct –

Répondre

2

Vous pouvez le faire en utilisant le drapeau:

var isClickDisabled:Boolean = false; 

var myTimeoutClickObject = setTimeout(clickObject, 11000); 

function clickObject():void{ 
    //My code 
    if(isClickDisabled) 
     return; 
} 

reset_btn.addEventListener(MouseEvent.CLICK, reset); 

function reset(e:MouseEvent):void{ 
    //My code 
    isClickDisabled = true; 

    // call code to re-enable it later for 11sec 
} 

Ou utilisez clearTimeout comme ceci:

clearTimeout(myTimeoutClickObject); 

setTimeout(startAgain_clickObject, 11000); 

function startAgain_clickObject(e:MouseEvent):void { 
     myTimeoutClickObject = setTimeout(clickObject, 11000); 
}