Timer, Delayedcall… Déclancher des évenements.
Très souvent dans un jeu ou une application flash, il est nécessaire de déclencher un évènement après x secondes ou toutes les x secondes.
Voici plusieurs méthodes pratiques pour le faire:
La classe Timer.
Timer déclenche des événements après un temps exprimé en millisecondes et ce autant de fois que demandé (système de boucle).
var monTimer : Timer = new Timer(5000,10);// ou 5000 exprime le temps en milliseconde(donc 5secondes) avant de finir une boucle et 10 le nombre de boucles.
monTimer.addEventListener(TimerEvent.TIMER, apresUneBoucle); // Déclenche une fonction après chaque boucle (donc après 5sec, et ce 10x de suite).
monTimer.addEventListener(TimerEvent.TIMER_COMPLETE, auFinal); // Déclenche une fonction au final du Timer(donc après 50sec ici).
monTimer.start(); // Lance le Timer.
Il existe beaucoup de fonctions très pratiques pour gérer des Timer plus complexes (stop,reset,..) n’hésitez pas à consulter la doc de Flash pour plus d’infos.
Une autre méthode très pratique est d’utiliser l’excellent package de Tweenlite (greenshok) que j’utilise personnellement dans tous développements pour des animations et qui propose entre autre une méthode simple de déclenchement d’Event après un laps de temps:
TweenLite.delayedCall(5, myFunction); // Déclenche 'myFunction' après 5 secondes
L’avantage de cette méthode est une écriture très rapide pour peu que TweenLite soit déjà chargé et permet de passer un tableau de paramètres (en temps que 3e paramètre de la fonction) facilement.