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);
}
} |
Partager