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 8] setinterval();


Sujet :

Flash

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Destiny
    Profil pro
    Inscrit en
    Février 2005
    Messages
    720
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 720
    Par défaut [FLASH 8] setinterval();
    Bonjour,
    j'ai un petit problème avec la fonction setInterval();

    je m'explique, j'ai fait un petit jeux avec un decompt de temps.
    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
    18
    19
     
    stop();
     
     
     
    myTimer = setInterval(tempsfunc,1000);
     
     
    function tempsfunc() {
    	if(tempsecoule > 0)
    	{
    	tempsecoule = tempsecoule - 1;
    	}
    	else
    	{
    		_root.gotoAndStop("end");
    	}
     
    }
    Comme vous le voyer toute les 1 seconde, j'appel une fonction et lorsque mon temps est à 0 je vais à la fin de mon jeux.

    mais si je met un bouton à la fin pour recommencer le jeux, la fonction setinterval(); va comme plus vite.

    je ne sais pas comment la remettre à la valeur de départ... si vous pouvez m'aider. merci


  2. #2
    Inactif Avatar de CR_Gio
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 195
    Par défaut
    bonjour a toi ... a vous

    Tu y étais presque ....
    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
    18
     
    stop();
    /*  declaration facultative  :? 
    var myTimer:Number;//myTimer = poingé de l'interruption
    */
    myTimer = setInterval(tempsfunc,1000);//Location du Timer
    function tempsfunc() {
       if(tempsecoule > 0)
       {
          tempsecoule = tempsecoule - 1;
       }
       else
       {
          // Arret du decompte
          clearInterval(myTimer);//liberration du timer
          _root.gotoAndStop("end");
       }
    }
    Explication.
    Lorsque tu appel la fonction setInterval, elle te renvoi un identifiant que l'on appel "poigné" (handle en Anglais) que tu a stoké dans la variable myTimer.
    Cette handle permet de connaitre le timer associé au different parrametre donnée a setInterval().
    NB:
    le timer est un chronometre que tu peut lance et arrete a vonlonté. A chaque fois que tu le lance( setInterval() ),il se remet a zero et commence a compter (1,2,3,4,....,n) jusqu'a arriver a la valeur indiqué n (ici 1000 milliseconde soit : n=1000).
    Lorsque le timer arrive a la valeur de n, une interruption est "invoké".
    L'ors d'une interruption Timer, le proceseur realise 2 chose :
    -- le timer est remis a zero et commence a recompter (0,1,2,3, ..., n ).
    puis,
    -- le proceceur arrete ce qu'il est en train de faire et execute la fonction associé à l'handle (ici tempsfunc) puis reprend ce qu'il était en train de faire.


    mais si je met un bouton à la fin pour recommencer le jeux, la fonction setinterval(); va comme plus vite.
    Au premier appel de setInterval(), tu actives (tu aloues) un timer que tu n'arrete jamais ce qui fait que lorsque tu revien au debut de ton jeux, tu reéxecutes le code que tu nous a montré et donc, tu redemande l'aloccation d'un timer via setInterval() ce qui fait que t'as deux chronometre (timer) qui a chaque fois qu'ils passe a "n" appel leur foction associé respective. tu va donc deux fois plus vite.
    (Si tu REcommence 2 fois le jeu, tu irras 3 fois plus vite etc....).

    D'ou la neccessité d'éteindre le timer (clearInterval(myTimer) ) de qu'on en a plus besoin


    Je sais pas si j'ais été claire

  3. #3
    Membre éclairé Avatar de Destiny
    Profil pro
    Inscrit en
    Février 2005
    Messages
    720
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 720
    Par défaut
    en fait je savais exactement comment ça marchais, je ne me souvenait plus de l'instruction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    clearInterval(myTimer);
    et j'ai trouvé dans le libre de M.mook... mais merci quand même de ta réponse complète, les autres utilisateurs pourront, voir comment ça marche.


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

Discussions similaires

  1. [FLASH 8] setInterval persistant
    Par nounetmasque dans le forum Flash
    Réponses: 3
    Dernier message: 21/09/2007, 16h02
  2. [FLASH 8] setInterval
    Par charlix dans le forum Flash
    Réponses: 6
    Dernier message: 14/12/2006, 01h17
  3. [FLASH MX2004] setInterval & Date.getMilliseconds()
    Par solarishp dans le forum Flash
    Réponses: 4
    Dernier message: 08/12/2006, 01h16
  4. [FLASH MX] pb setInterval
    Par chocobos dans le forum Flash
    Réponses: 5
    Dernier message: 24/08/2005, 16h42
  5. [flash MX] probleme avec setinterval et clearinterval
    Par yacinechaouche dans le forum Flash
    Réponses: 3
    Dernier message: 15/04/2004, 12h07

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