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 persistant


Sujet :

Flash

  1. #1
    Membre confirmé Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Points : 570
    Points
    570
    Par défaut [FLASH 8] setInterval persistant
    Bonjour,

    je cherche à utiliser la fonction setInterval pour lancer un thread (plus précisement un timer). La fonction marche correctement et affiche bien un message à la fin de l'exécution si je reste sur la même image !

    Le problème survient lorque j'essaye de naviguer entre deux images. Je lance le setInterval sur l'image A et avant la fin du timer je passe à l'image B. Et là oh mauvaise surprise le message d'erreur n'apparait pas !
    J'ai essayé de jouer sur le domaine de la fonction setInterval, d'utiliser une variable globale pour l'instance de ma classe Timer mais cela ne change rien.

    Merci d'avance pour l'aide.
    "Dieu reste muet, si seulement nous pouvions convaincre l'être humain d'en faire autant."

  2. #2
    Membre émérite
    Avatar de jean philippe
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 062
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 062
    Points : 2 313
    Points
    2 313
    Par défaut
    salut
    on peut voir le code et la structure ?

  3. #3
    Membre confirmé Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Points : 570
    Points
    570
    Par défaut
    Aucun problème :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    class Timer{
    	private var Duree : Number; //tps restant avant la fin du timer
    	private var Label : Object; //libelle servant à afficher le timer
    	private var Fonction : Function; //fonction appelée à la fin du timer
    	private var Thread : Number = 0; //thread associé au timer
     
     
    	//constructeur de la classe
    	function Timer(_Duree : Number, _Label : Object, _Fonction : Function, _tParam : Array){		
    		Duree = _Duree;
    		Label = _Label;
    		Fonction = _Fonction;
     
    		//lancder le thread
    		tester_fin_timer();
    		Thread = setInterval(this, "tester_fin_timer", 1000, _tParam);
    		trace('set ' + Thread);
    	}
     
     
    	//champ Duree
    	function set setDuree(_Duree : Number){ Duree = _Duree; }	
    	function get getDuree() : Number{ return Duree; }			
     
    	//champ Label
    	function set setLabel(_Label : Object){ Label = _Label; }	
    	function get getLabel() : Object{ return Label; }		
     
    	//champ Fonction
    	function set setFonction(_Fonction : Function){ Fonction = _Fonction; }	
    	function get getFonction() : Function{ return Fonction; }		
     
    	//champ Thread
    	function set setThread(_Thread : Number){ Thread = _Thread; }	
    	function get getThread() : Number{ return Thread; }
     
     
    	//afficher le temps restants avant la fin du timer
    	function afficher_duree() : String{
    		var heure : String = "00";
    		var minute : String = "00";
    		var seconde : String = "00";
     
    		heure = String(Math.floor(Duree/3600));
    		minute = String(Math.floor((Duree - 3600*heure)/60));
    		seconde = String(Duree - 3600*heure - minute*60);
     
    		Duree --;
    		Label.text = heure + ":" + minute + ":" + seconde;
     
    		return Label.text;
    	}
     
     
    	//tester si un timer est terminé
    	function tester_fin_timer(_tParam : Array){
    		var horraire : String = afficher_duree();
     
    		if(horraire == "0:0:0") endTimer(_tParam);
    	}
     
     
    	//terminer un timer en cours
    	function endTimer(_tParam : Array){
    		if(_tParam == undefined) Fonction();
    		Label.text = "";
    		clearInterval(Thread);
    	}
    }
    Merci pour l'aide
    "Dieu reste muet, si seulement nous pouvions convaincre l'être humain d'en faire autant."

  4. #4
    Membre confirmé Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Points : 570
    Points
    570
    Par défaut
    "Dieu reste muet, si seulement nous pouvions convaincre l'être humain d'en faire autant."

Discussions similaires

  1. [FLASH 8] setInterval
    Par charlix dans le forum Flash
    Réponses: 6
    Dernier message: 14/12/2006, 01h17
  2. [FLASH MX2004] setInterval & Date.getMilliseconds()
    Par solarishp dans le forum Flash
    Réponses: 4
    Dernier message: 08/12/2006, 01h16
  3. [FLASH 8] setinterval();
    Par Destiny dans le forum Flash
    Réponses: 2
    Dernier message: 20/12/2005, 08h19
  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