Il existe la méthode setInterval pour exécuter une fonction à intervalles de temps réguliers. Le seul moyen de stopper ces appels et d'utiliser clearInterval ; mais il nous faut alors connaître le nombre (idInterval) retourné par setInterval.
Il n'est donc pas évident d'utiliser cet ID à l'intérieur même de la fonction appellée.
La syntaxe est similaire à celle de setInterval.
Source / Exemple :
/**
- Retarder l'exécution d'une fonction
-
- @author: Jérôme Tamarelle [ http://tibulle.com ]
- @date: 05-06-2005
- @version 2.0
-
- * * *
-
- Fonctions avec syntaxe similaire à celle de setInterval,
- elles permettent :
-
- 1. exécuter une fonction en différé :
- setInterval(fun, time, args...)
- setInterval(obj, funame, time, args...)
-
- 2. exécuter une fonction n fois à interval de temps régulier :
- setInterval(n, fun, time, args...)
- setInterval(n, obj, funame, time, args...)
-
class com.superdevy.utils.Delay
{
//---o Metas
public static var className:String = "Delay";
public static var classPackage:String = "com.superdevy.utils";
public static var version:String = "2.0";
public static var author:String = "SuperDevy";
public static var link:String = "
http://tibulle.com/";
//---o Fonction unique
public static function setDelay (a, b, c, d) :Number
{
var obj:Object, fun:Function, nb:Number, args:Array, time:Number;
if (typeof(a)=="number" && typeof(c)=="string") {
obj=b, fun=b[c], nb=a, args=arguments.slice(3), time=d;
}
else if (typeof(a)=="number" && (b instanceof Function)) {
obj=null, fun=b, nb=a, args=arguments.slice(2), time=c;
}
else if (typeof(b)=="string") {
obj=a, fun=a[b], nb=1, args=arguments.slice(3), time=c;
}
else if (a instanceof Function) {
obj=null, fun=a, nb=1, args=arguments.slice(2), time=b;
}
else {
return NaN;
}
var interval = function(obj:Object, args:Array) :Void {
fun.apply(obj, args);
if((--nb)<1) clearInterval(idInterval);
}
var idInterval = setInterval(interval, time, obj, args);
return idInterval;
}
//---o Supprime tous les intervals
public static function clearAllIntervals (Void) :Void {
var i = setInterval(Function, 1000) + 1;
while (i>0) clearInterval(--i);
}
}
Conclusion :
Il est possible de porter les fonctions pour Flash MX.
24 janv. 2007 à 18:12
donc est ce que quelqu'un pourrait m'expliquer comment faire pour qu'au bout de 10 minutes un son apparaisse(et quelle est la meilleure fonction pour mettre un son dans une animation)!!!
merci d'avance
5 juin 2005 à 00:36
Les quatres fonctions initiales ont été concaténées en une seule, pour que l'utilisation soit plus aisée.
Le Zip contient toujours l'ancienne version 1.0
29 mai 2005 à 09:38
Ca marche Nikel, Merci merci beaucoup, tu m'enlèves une sacrée épine du pied
Au plaisir
snaaake3
29 mai 2005 à 01:09
http://wiki.media-box.net/classes/flash/com/superdevy/utils/delay
27 mai 2005 à 14:11
Je suis un peu nouveau, mais pourrais-tu me donner un exemple d'utilisation de setDelay().
Je voudrais appeler une fonction qui va mettre en pause un flux video au bout d'une certaine durée que j'ai.
A l'appui d'un bouton, je voudrais lancer setDelay, qui executera ma fonction de pause de flux video au bout d'un temps que je précise.
Pourrais tu m'expliquer comment faire ca?
Merci d'avance
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.