Affichage de la date et de l’heure

Afficher la date et l'heure en ActionScript 3 (AS3)

La date et l'heure que calcule ActionScript sont basées sur le paramétrage de la date et l'heure de l'ordinateur du client.
Nous allons utiliser la classe Date pour récupérer la date et l'heure.

Nous utiliserons ensuites les propriétés de la classe Date pour récupérer l'année, le mois, le jour, l'heure, les minutes et les secondes. Cependant, le mois et le jour sont renvoyés en tant que valeurs numériques. Nous utiliserons donc des tableaux pour stockés les mois et les jours en tant que chaînes de caractères.

Actionscript:
  1. const MOIS:Array = new Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
  2. const JOURS:Array = new Array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");

L'affichage se fera dans deux champs de texte dynamiques.

Actionscript:
  1. var date_txt:TextField = new TextField();
  2. addChild(date_txt);
  3. var heure_txt:TextField = new TextField();
  4. heure_txt.y = 100; addChild(heure_txt);

Nous utiliserons un Timer pour mettre à jour l'affichage toutes les secondes. Une instance de la classe Date sera créée.
Nous récupérerons l'année grâce à la propriété fullYear.
Nous récupérerons le mois grâce à la propriété month. Cependant, cette propriété renvoie un nombre entre 0 (janvier) et 11 (décembre). Nous utiliserons donc ce nombre pour récupérer l'index correspondant dans le tableau des mois.
Nous récupérerons le jour dans le mois grâce à la propriété date.
Nous récupérerons le jour dans la semaine grâce à la propriété day. Cependant, cette propriété renvoie un nombre entre 0 (dimanche) et 6 (samedi). Nous utiliserons donc ce nombre pour récupérer l'index correspondant dans le tableau des jours.

Actionscript:
  1. // on crée un objet Timer avec en paramètres le délai puis le nombre d'événements diffusés
  2. var myTimer:Timer = new Timer( 1000, 0 ); //on souhaite exécuter une action toutes les 1000 millisecondes.
  3. // A chaque appel du Timer (toutes les 1000 millisecondes),
  4. function onAffichage( pEvt:TimerEvent ):void
  5. {
  6.     var temps:Date = new Date(); //création de l'instance de la classe Date
  7.     var annee:uint = temps.fullYear; //récupération de l'année
  8.     var mois:String = MOIS[temps.month]; //récupération du nom du mois dans le tableau MOIS
  9.     var numJour:uint = temps.date; //récupération du numéro du jour dans le mois
  10.     var jour:String = JOURS[temps.day]; //récupération du nom du jour dans le tableau JOURS
  11.     date_txt.text = jour + " " + numJour + " " + mois + " " + annee; //affichage du calendrier dans le champ de texte
  12. }
  13. myTimer.addEventListener( TimerEvent.TIMER, onAffichage ); //Toutes les 1000 millisecondes, le timer exécute l'événement TIMER et donc en réponse, la fonction onAffichage est exécutée.
  14. myTimer.start(); //démarrage du timer

Afin d'avoir un affichage cohérent, nous allons devoir ajouter un 0 devant les heures, minutes et secondes inférieures à 10. Nous allons pour cela créer une fonction, qui retournera sous forme de chaîne de caractères l'affichage correct des heures, minutes et secondes.

Actionscript:
  1. function reglage( valeur:uint ):String
  2. {
  3.     var retour:String = "";
  4.     if(valeur<10)
  5.         {
  6.        retour = "0"+valeur;
  7.     }
  8.     else
  9.     {
  10.        retour = String(valeur);
  11.     }
  12.     return retour;
  13. }

Dans la fonction onAffichage, nous récupérerons les heures grâce à la propriété hours.
Nous récupérerons les minutes grâce à la propriété minutes.
Nous récupérerons les secondes grâce à la propriété seconds.

Actionscript:
  1. // on crée un objet Timer avec en paramètres le délai puis le nombre d'événements diffusés
  2. var myTimer:Timer = new Timer( 1000, 0 );//on souhaite exécuter une action toutes les 1000 millisecondes.
  3. // A chaque appel du Timer (toutes les 1000 millisecondes),
  4. function onAffichage( pEvt:TimerEvent ):void
  5. {
  6.     var temps:Date = new Date(); //création de l'instance de la classe Date
  7.     var annee:uint = temps.fullYear; //récupération de l'année
  8.     var mois:String = MOIS[temps.month]; //récupération du nom du mois dans le tableau MOIS
  9.     var numJour:uint = temps.date; //récupération du numéro du jour dans le mois
  10.     var jour:String = JOURS[temps.day]; //récupération du nom du jour dans le tableau JOURS
  11.     date_txt.text = jour + " " + numJour + " " + mois + " " + annee; //affichage du calendrier dans le champ de texte
  12.     var heure:String = reglage( temps.hours ); //récupération et transformation éventuelle des heures
  13.     var minute:String = reglage( temps.minutes ); //récupération et transformation éventuelle des minutes
  14.     var seconde:String = reglage( temps.seconds ); //récupération et transformation éventuelle des secondes     heure_txt.texte = heure + ":" + minute + ":" + seconde;
  15. }
  16. myTimer.addEventListener( TimerEvent.TIMER, onAffichage ); //Toutes les 1000 millisecondes, le timer exécute l'événement TIMER et donc en réponse, la fonction onAffichage est exécutée.
  17. myTimer.start(); //démarrage du timer

Le script complet :
Actionscript:
  1. const MOIS:Array = new Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
  2. const JOURS:Array = new Array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");
  3. var date_txt:TextField = new TextField(); addChild(date_txt);
  4. var heure_txt:TextField = new TextField();
  5. heure_txt.y = 100;
  6. addChild(heure_txt);
  7. function reglage( valeur:uint ):String
  8. {
  9.     var retour:String = "";
  10.     if(valeur<10) {
  11.        retour = "0"+valeur;
  12.     }
  13.     else
  14.     {
  15.        retour = String(valeur);
  16.     }
  17.     return retour;
  18. }
  19.  // on crée un objet Timer avec en paramètres le délai puis le nombre d'événements diffusés
  20. var myTimer:Timer = new Timer( 1000, 0 ); //on souhaite exécuter une action toutes les 1000 millisecondes.
  21. // A chaque appel du Timer (toutes les 1000 millisecondes),
  22. function onAffichage( pEvt:TimerEvent ):void
  23. {
  24.     var temps:Date = new Date(); //création de l'instance de la classe Date
  25.     var annee:uint = temps.fullYear; //récupération de l'année
  26.     var mois:String = MOIS[temps.month]; //récupération du nom du mois dans le tableau MOIS
  27.     var numJour:uint = temps.date; //récupération du numéro du jour dans le mois
  28.     var jour:String = JOURS[temps.day]; //récupération du nom du jour dans le tableau JOURS
  29.     date_txt.text = jour + " " + numJour + " " + mois + " " + annee; //affichage du calendrier dans le champ de texte
  30.     var heure:String = reglage( temps.hours ); //récupération et transformation éventuelle des heures
  31.     var minute:String = reglage( temps.minutes ); //récupération et transformation éventuelle des minutes
  32.     var seconde:String = reglage( temps.seconds ); //récupération et transformation éventuelle des secondes
  33.     heure_txt.text = heure + ":" + minute + ":" + seconde;
  34. }
  35. myTimer.addEventListener( TimerEvent.TIMER, onAffichage ); //Toutes les 1000 millisecondes, le timer exécute l'événement TIMER et donc en réponse, la fonction onAffichage est exécutée.
  36. myTimer.start(); //démarrage du timer

;)