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

Flash Discussion :

[FLASH MX2004] Compteur progressif 0 à 95%


Sujet :

Flash

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2004
    Messages : 7
    Points : 6
    Points
    6
    Par défaut [FLASH MX2004] Compteur progressif 0 à 95%
    Bonjour,

    Je voudrais faire un compteur progressif, qui aille de 0 à 95% mais que l incrémentation se fasse de plus en plus vite. Idéalement avec une vitesse exponentielle

    J'ai regardé quelques fonctions de temps en flash, et à par setInterval ou getTimer, je n'en vois pas d'autre approriées.
    J'ai deja essayer un code (ci joint) mais il marche pas du tout, puisque j'ai une merveilleuse boucle infinie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var nb = 0; // nombre incémenté
    var inter = 0; // intervalle d'incrementation
    var deltime = 1000; // valeur pour reduire l intervalle
     
    while (_root.nb < 95){	
    	_root.compteur = _root.nb +"%";
    	if (getTimer() > _root.inter){
    		nb ++;
    	}
    	_root.inter += _root.deltime;
    	_root.deltime = _root.deltime / 2;
    }
    Si quelqu'un a une solution

    A priori je suppose que l erreur vient du fait que la boucle risque pas de s'arreter puisque la valeur nb donné à la fonction reste 0

    Merci beaucoup de votre aide.

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    J'ai pas décortiqué ton code de manière approfondie mais ton problème de boule infinie me paraît logique. Tu mets comme condition while _root.nb.....et dans ta boucle tu incrémentes nb au lieu de _root.nb

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2004
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    le nb et _root_nb en fait sont les meme variable, le code qu il y a fonctionne maintenant. Le seul HIC est que au lieu de m'afficher dans mon champ dynamique 0 1 2 3 4 5 6 ..... il travaille le temps du calcul et ne m affiche que 95% a la fin : Le compteur ne compte pas.

    Faudrait il utiliser un onClipEvent ?
    J ai essayer pas mal de truc mais pas trouver la soluce encore

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2002
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    slt, tout depend ou ton code est placé.
    mais je craint que _root.nb soit indefini.
    _root.nb et nb semble different.

    Axl
    -------------------------------------------
    No Think To Code | Be The Code

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2004
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Ok bon revoila mon code, placé dans un onclipevent(enterframe)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    onClipEvent (enterFrame) {
    	_root.timer = getTimer();
    	if (_root.nb < 96){	
    		_root.compteur = _root.nb +"%";
    		if (getTimer() > _root.inter){
    			_root.nb ++;		
    			_root.inter += _root.deltime;
    			_root.deltime = _root.deltime / 1.7; // vitesses d'acceleration (plus le diviseur est grand plus ca va accélérer)
    		}		
    	}
    }
    et dans un calque script (root)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var nb = 0;
    var inter = 500; // Départ au premier incrément
    var deltime = 500; //cadence du second
    Très important, la vitesse de défilement dépendra également du nombre d'ips de l'anim flash

    Merci ca marche maintenant, c pas exponentiel, mais ca ira.

    Merci de votre aide

    Jérémy

  6. #6
    Membre à l'essai
    Inscrit en
    Juillet 2002
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    super si ca fonctionne.
    Clic Clic Resolu...
    -------------------------------------------
    No Think To Code | Be The Code

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

Discussions similaires

  1. [FLASH MX2004] Problème avec apparition d'images progressifs !
    Par °°° Zen-Spirit °°° dans le forum Flash
    Réponses: 6
    Dernier message: 18/05/2006, 08h58
  2. [FLASH MX2004] Flou progressif [...]les calques
    Par Andromik dans le forum Flash
    Réponses: 4
    Dernier message: 19/03/2006, 22h39
  3. Réponses: 5
    Dernier message: 14/01/2006, 20h30
  4. [FLASH MX2004] Hierarchisation des actions
    Par bolo dans le forum Flash
    Réponses: 9
    Dernier message: 06/11/2003, 16h02
  5. [FLASH MX2004] Personnaliser les scrollbars
    Par stephane eyskens dans le forum Flash
    Réponses: 10
    Dernier message: 09/10/2003, 12h53

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