Il a y différentes façons de lancer une fonction après un délais :
- Avec un évènement enter frame
- Avec une instance de la classe Timer
- Avec une animation Motion Tween
- Avec un évènement enter frame et la fonction getTimer
- Et avec la fonction setTimeout (Voir setTimeout sur le livedocs d’Adobe)
Comment utiliser le setTimeout ?
- Tout d’abord il faut créer une variable assignée à l’identifiant du setTimout
var intervalIndentifier
- La fonction setTimeout retourne un identifiant unique (uint) à chaque fois que vous appelez cette fonction. Sauvegarder cet identifiant dans la variable dédiée.
// La fonction hello va se lancer dans 2000 ms intervalIdentifier = setTimeout(hello, 2000) function hello() { trace("function launched") }
- Cet ideitifiant doit être supprimé avec la fonction cleatTimeout pour stopper le processus si la fonction du setTimeout n’a pas été appelée.
clearTimeout(intervalIdentifier)
NB :
- Si vous souhaitez lancer un setInterval déjà lancé n’oubliez pas de supprimer l’ancien identifiant. Dans ce cas le précédent setTimeout ne sera pas arrêté.
- Il faut savoir que le setTimeout ne peut pas être en pause ou relancé après son arrêt.
- Toujours assigner une variable pour chaque setTimout
- Le délais du setTimout est basé sur le temps et non pas sur la durée des frames.
- Quand vous supprimez un setTimeout la fonction qui devait être appelée n’est pas lancée.
- Vous n’avez pas besoin de supprimer un setTimeout when the setTimeout est déjà terminé mais cela ne coûte rien de le faire quand même.
Ajouter des paramètres dans le setTimeout :
La fonction lancée par le setTimout peut recevoir plusieurs arguments.
Pour ajouter des arguments ajoutez simplement des arguments après le second paramètre du setTimeout:
Bien entendu la fonction qui doit être lancée doit avoir exactement le bon nombre d’arguments.
intervalIdentifier = setTimeout(hello, 2000, "world", "www.benoitfreslon.com") function hello(arg1, arg2) { trace(arg1, arg2) }
Exemple:
[swf:/wp-content/uploads/2011/01/www.benoitfreslon.com-Launch-a-function-after-a-delay-with-setTimeout.swf 400 250]
Télécharger la source : www.benoitfreslon.com Launch a function after a delay with setTimeout.zip