IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 1 & ActionScript 2 Discussion :

Stopper un compteur


Sujet :

ActionScript 1 & ActionScript 2

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 20
    Points : 7
    Points
    7
    Par défaut Stopper un compteur
    Salut à tous
    Je ne sais pas vous mais je continue pas mal à utiliser Flash avec actionscript 2 pour créer des interfaces de présentation sympas et interactives.

    J'ai ce petit bout de code qui me permet de compter de 20 à 100. Si on atteint 100, je fais naviguer vers une autre image et le tour est joué. Cela fonctionne sauf que...
    Sauf que si l'on revient sur cette même animation (compteur de 20 à 100) et qu'on relance le compteur... l'intervalle de 0,125 secondes que j'avais établi n'est pas du tout respecté, et le compteur s'affole... Et si je reviens plusieurs fois pour relancer ce compteur à chaque fois cela va de plus en plus vite...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    fueling.text = 20;
     
    function compteur()
    {
    	if (fueling.text == 100)
    	{
    		fueling.text = 100;
    		_root.gotoAndStop("fuelOK");
    		fueling.text = 20;
    	}
    	else
    	{
    		fueling.text++;
    	}
    }
     
    setInterval(compteur,125);
    Merci pour votre aide
    Excellente journée à vous!
    Miran

  2. #2
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 740
    Points
    4 740
    Par défaut


    setInterval n'a jamais été et ne sera jamais une méthode fiable pour respecter une durée.
    il faut utiliser getTimer
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    Salut et merci pour ta réponse psychadelic!

    Je ne le savais pas, c'est bien la première fois que j'utilise setInterval. Je file me renseigner sur getTimer de ce clic...
    Aurais-tu des ressources à me conseiller à ce sujet?

    Miran

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    quand tu arrives à la fin de ta boucle il ne faut pas oublier de détruite l'instance du « timer » sinon celle ci est toujours active.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    fueling.text = 20;
    function compteur() {
      if (fueling.text == 100) {
        // on clear le timer
        clearInterval(iTimer);
     
        fueling.text = 100;
        _root.gotoAndStop("fuelOK");
        fueling.text = 20;
      }
      else {
        fueling.text++;
      }
    }
    iTimer = setInterval(compteur, 125);

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    Bonjour NoSmoking et merci beaucoup pour ta réponse!
    Ah ben oui je comprends parfaitement. J'ai oublié de le réinitialiser en quelques sortes...
    Je viens de tester et cela fonctionne parfaitement!! Est-ce qu'il faut chercher du côté de getTimer alors selon vous?

    merci
    Miran

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Est-ce qu'il faut chercher du côté de getTimer alors selon vous?
    si c'est juste pour faire un décompte visuel avec une précision toute relative tel le comptage lors d'un jeu de « cache-cache » alors aucun intérêt.

    Maintenant si tu veux un décompte précis, qui ne le sera pas forcément, alors oui.

    • setInterval() : Exécute une fonction à fréquence définie plus ou moins égale au délai passé en paramètre ;
    • getTimer() : Permet de récupérer un temps relatif au système.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    Merci pour ton retour NoSmoking!

    Ce que je suis en train de faire ne demande pas une grande précision dans l'absolu mais...
    J'ai une barre de progression et un pourcentage que je contrôle séparément et forcément je rencontre des écarts... ils n'arrivent pas en même temps à 100% de leurs valeurs

    > le compteur qui va de 20% à 100% que je contrôle avec le code ci-dessus
    > la barre de progression qui est un simple movieclip qui se lit au lancement de la page
    Ce dernier utilise donc forcément les secondes et se base sur la cadence de l'animation, mais le compteur s'affole parfois ou parfois semble ralentir...
    Miran

  8. #8
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 740
    Points
    4 740
    Par défaut
    La partie logicielle qui affiche la vidéo doit, elle aussi, négocier avec le SE pour son faire son job*; donc ne t’attends pas non plus de ce côté la à avoir une précision d’horloge...
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 20
    Points : 7
    Points
    7
    Par défaut
    Merci pour ta réponse Pyschadelic

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [NVidia] Démarrer ou stopper sortie Tv
    Par nico-21 dans le forum DirectX
    Réponses: 2
    Dernier message: 31/05/2004, 11h59
  2. [PB CONCEPTUEL] avec compteur/trigger
    Par kase74 dans le forum SQL
    Réponses: 6
    Dernier message: 25/03/2004, 11h02
  3. Remise à 0 d'un compteur automatique
    Par missllyss dans le forum SQL
    Réponses: 4
    Dernier message: 15/12/2003, 16h46
  4. Stopper la répétition du clavier
    Par Chris89 dans le forum Assembleur
    Réponses: 6
    Dernier message: 17/10/2003, 20h53
  5. Migration Access > SQL Server (suite) : Compteur
    Par LadyArwen dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/03/2003, 14h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo