SetInterval pas précis? [Résolu]

py2lyon 9 Messages postés vendredi 4 juin 2004Date d'inscription 21 novembre 2005 Dernière intervention - 21 nov. 2005 à 11:09 - Dernière réponse : cs_Delivrator 4 Messages postés mardi 29 juin 2004Date d'inscription 30 novembre 2005 Dernière intervention
- 30 nov. 2005 à 16:35
Bonjour a tous.



J'aimerai faire un compteur de secondes dans une anim flash.

J'ai absolument besoin que ce compteur soit précis.



Voici ce que j'ai essayé:

var timer:Number = 0;

function incrTimer():Void {

trace(timer);

timer++;

updateAfterEvent();

}

intervalId = setInterval(this, "incrTimer", 1000);


Le probleme c'est que ce n'est pas précis, avec un chronometre à la
main on observe un decelage de 4 secondes toutes les minutes!

essayer pour voir!



Si quelqu'un connait la raison de ce decalage...

ou si quelqu'un connait un autre moyen de faire un compteur précis je suis preneur.



merci d'avance pour vos réponse.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
py2lyon 9 Messages postés vendredi 4 juin 2004Date d'inscription 21 novembre 2005 Dernière intervention - 21 nov. 2005 à 13:29
3
Merci
ok les gars merci pour vos reponse rapide!



je vais utiliser getTimer()...



A l'avenir je serai que setIntervall n'est pas précis



Merci

Merci py2lyon 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de py2lyon
pegase31 6161 Messages postés dimanche 21 décembre 2003Date d'inscription 4 septembre 2013 Dernière intervention - 21 nov. 2005 à 11:22
0
Merci
tu as un objet date ou getTimer à disposition .. tu t'y prends mal !

Peg'
Commenter la réponse de pegase31
_benjy 1637 Messages postés vendredi 23 avril 2004Date d'inscription 21 février 2011 Dernière intervention - 21 nov. 2005 à 11:25
0
Merci
Salut

si le setInterval déconne (ce qui m'etonne tout de mm, mais c vient p'etre du temps entre l'appel de l'interval et la fonction)
tu peux utiliser getTimer() qui te renvois le nb de milliseconde ecoulé depuis le lancement du swf
donc quand tu initialise ton chrono, tu fais par exemple :
_startTime = getTimer();
et quand t'as besoin de recup le temps passé :
_endTime = getTimer();
_time = (_endTime-_startTime)/1000;
avec ca t'es sur de pas avoir de décalage, puisque tu calcul a la milliseconde prés
++

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
Commenter la réponse de _benjy
_benjy 1637 Messages postés vendredi 23 avril 2004Date d'inscription 21 février 2011 Dernière intervention - 21 nov. 2005 à 13:36
0
Merci
Salut

setInterval est précit, si t'avais fat ca avec un interval tt les 10 millisecondes ca aurait ss doute marché
mais je pense surtout que la méthode avec getTimer() doit prendre moins de resources
au fait c ma réponse qu'il faut accepter, pas la tienne LOL c pas toi qui t'ai répondu ....

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
Commenter la réponse de _benjy
cs_Delivrator 4 Messages postés mardi 29 juin 2004Date d'inscription 30 novembre 2005 Dernière intervention - 30 nov. 2005 à 16:35
0
Merci
Pour éviter que d'autres ne se fassent piéger, je confirme ce que dit py2lyon, setInterval est d'une précision toute relative.



Selon les machines la précision varie énormément. Il me faut d'ailleurs
revoir complètement certaines petites applis après avoir observé ceci.
Sur 10 minutes, une machine accusait environ 2 secondes de retard mais
une autre en était à presque 1 minute de retard... tout simplement
inacceptable pour faire ne serait-ce qu'une horloge...



Je tente un getTimer() pour voir... mais j'ai un doute, si les deux sont basés sur le même principe...
Commenter la réponse de cs_Delivrator

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.