Auteur: Jérôme Forget. Publié le 6 août 2006.
Pour exécuter une action en continu dans le temps, deux méthodes sont possibles: soit on utilisera la méthode onEnterFrame() d'un clip pour qu'une action s'exécute à la cadence de l'animation, soit on utilisera setInterval pour invoquer une fonction à un intervalle fixe en millième de secondes.
Pour régler un intervalle pour une fonction, on utilisera la fonction globale setInterval(). Cette fonction accepte deux paramètres: une référence à la fonction et le nombre de millièmes de secondes entre chaque appel à cette fonction. Il faudra d'abord définir cette fonction. Voyons comment :
// Définir une fonction.
function exempleFonctionIntervalle():void {
trace("Ceci est une fonction à intervalle.");
}
// Appel à setInterval(). On passe en paramètre le nom de la fonction et un
// nombre de millièmes de secondes. Dans ce cas-ci, on dira à Flash d'appeler la
// fonction toutes les milles millièmes de secondes, donc à chaque seconde.
var nIntervalle:Number = setInterval(exempleFonctionIntervalle, 1000);
Nous avons également la possibilité de passer des paramètres à la fonction à intervalle en les ajoutant aux valeurs de la liste des paramètres de la fonction setInterval().
// On définit une fonction avec deux paramètres.
function exempleFonctionIntervalle(sLettre1:String, sLettre2:String):void {
trace("Paramètres: " + sLettre1 + " ," + sLettre2);
}
// On définit l'intervalle, en passant deux valeurs "a" et "b" à la fonction
var nIntervalle:Number = setInterval(exempleFonctionIntervalle, 1000, "a", "b");
On peut indiquer à Flash d'arrêter d'appeler la fonction à intervalle en utilisant la fonction globale clearInterval(). Cette fonction doit connaître l'intervalle à arrêter. Parce que l'intervalle a été préalablement stocké dans une variable, nous utiliserons celle-ci comme paramètre à clearInterval() :
clearInterval(nIntervalle);