Date et heure

  • Introduction
  • Informations
Date et heure Voici une méthode qui vous permettra d'afficher la date et l'heure dans une animation Flash AS3.  
Netger
  • Auteur : Netger
  • Publication : 7 juin 2008 18:39
  • Consultations : 5014
 

1. Préparer l'espace de travail

Date et heure avec as3  image 1 Ouvrez un nouveau document Flash AS3 ou un document dans le quel vous souhaitez ajouter la date, l'heure ou même les deux.

Comme vous vous en doutez la taille de la scène ainsi que la couleur du background n'ont pas d'importance pour ce tutorial.

2. Les tableaux

Nous n'aurons maintenant plus besoin de la scène pour travailler : le panneau ActionScript suffira.

Date et heure avec as3  image 2 Pour commencer nous allons construire deux tableaux afin de référencer les noms des jours de la semaine et les noms des mois de l'année :
Code-source 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");
 
Ces tableaux permettront donc de récupérer le nom correspondant à l'index associé et ainsi de pouvoir noter en toutes lettres les noms des jours et des mois.

3. La classe TextFormat

Date et heure avec as3  image 3 Nous allons nous intéresser à la mise en forme du texte et utiliser la class TextFormat().
Code-source actionscript
  1. var format:TextFormat = new TextFormat();
  2. format.font = "Verdana";
  3. format.color = 0x0000FF;
  4. format.size = 14;
  5. format.bold = true;
 
Je pense que la lecture de ce bout de code vous aura permis d'en comprendre le sens général : nous souhaitons afficher un texte en gras, de taille 14px, de couleur bleu et de police "verdana".

4. La class TextField

Date et heure avec as3  image 4 A cette étape déclarez et ajoutez sur la scène les deux champs de texte où la date et l'heure seront affichés.
Code-source actionscript
  1. var date_field:TextField = new TextField();
  2. date_field.x = 30;
  3. date_field.y = 75;
  4. date_field.autoSize = TextFieldAutoSize.LEFT;
  5. date_field.defaultTextFormat = format;
  6. addChild(date_field);
  7.  
  8. var heure_field:TextField = new TextField();
  9. heure_field.x = 30;
  10. heure_field.y = 100;
  11. heure_field.autoSize = TextFieldAutoSize.LEFT;
  12. heure_field.defaultTextFormat = format;
  13. addChild(heure_field);
 
Nous en profitons pour placer ces champs de texte :
  • date_field : coordonnées X:30 et Y:75
  • heure_field : coordonnées X:30 et Y:100
Nous leur attribuons également un alignement à gauche ainsi que le style de texte (format) que nous avons déclaré à l'étape précédente.
Enfin nous ajoutons ces champs sur la scène.

5. Les fonctions

Date et heure avec as3  image 5 Afin de faire fonctionner ce script nous aurons besoins de deux fonctions :
  • La première, très simple, nous permettra d'ajouter un "0" devant les nombres strictement inférieurs à 10.
  • La seconde fonction sera déclenchée chaque seconde grâce à un timer et permettra de définir et d'afficher les dernières valeurs correspondant à la date et à l'heure.
Code-source actionscript
  1. function reglage( valeur:uint ):String
  2. {
  3. 	return (valeur<10) ? "0"+valeur : String(valeur);
  4. }
  5.  
  6. function afficher( Tevt:TimerEvent ):void
  7. {
  8. 	var temps:Date = new Date(); 
  9. 	var annee:uint = temps.fullYear;
  10. 	var mois:String = MOIS[temps.month];
  11. 	var numJour:uint = temps.date;
  12. 	var jour:String = JOURS[temps.day];
  13. 	date_field.text = jour + " " + numJour + " " + mois + " " + annee;
  14.  
  15. 	var heure:String = reglage( temps.hours );
  16. 	var minute:String = reglage( temps.minutes );
  17. 	var seconde:String = reglage( temps.seconds );
  18. 	heure_field.text = heure + " : " + minute + " : " + seconde;
  19. }
 

6. La class Timer

Dernière étape, il ne nous reste plus qu'à déclarer et lancer le timer :
Code-source actionscript
  1. var myTimer:Timer = new Timer( 1000, 0 );
  2. myTimer.addEventListener( TimerEvent.TIMER, afficher );
  3. myTimer.start();
 
Date et heure avec as3  image 6 Un écouteur d'événement placé sur le timer permet de lancer la fonction "afficher" à chaque démarrage du timer (chaque seconde).

7. Code source complet

Voici le code source complet de ce script :
Code-source 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.  
  4. var format:TextFormat = new TextFormat();
  5.  
  6. format.font = "Verdana";
  7. format.color = 0x0000FF;
  8. format.size = 14;
  9. format.bold = true;
  10.  
  11. var date_field:TextField = new TextField();
  12. date_field.x = 30;
  13. date_field.y = 75;
  14. date_field.autoSize = TextFieldAutoSize.LEFT;
  15. date_field.defaultTextFormat = format;
  16. addChild(date_field);
  17.  
  18. var heure_field:TextField = new TextField();
  19. heure_field.x = 30;
  20. heure_field.y = 100;
  21. heure_field.autoSize = TextFieldAutoSize.LEFT;
  22. heure_field.defaultTextFormat = format;
  23. addChild(heure_field);
  24.  
  25. function reglage( valeur:uint ):String
  26. {
  27. 	return (valeur<10) ? "0"+valeur : String(valeur);
  28. }
  29.  
  30. function afficher( Tevt:TimerEvent ):void
  31. {
  32. 	var temps:Date = new Date();
  33. 	var annee:uint = temps.fullYear;
  34. 	var mois:String = MOIS[temps.month];
  35. 	var numJour:uint = temps.date;
  36. 	var jour:String = JOURS[temps.day];
  37. 	date_field.text = jour + " " + numJour + " " + mois + " " + annee;
  38.  
  39. 	var heure:String = reglage( temps.hours );
  40. 	var minute:String = reglage( temps.minutes );
  41. 	var seconde:String = reglage( temps.seconds );
  42. 	heure_field.text = heure + " : " + minute + " : " + seconde;
  43. }
  44.  
  45. var myTimer:Timer = new Timer( 1000, 0 );
  46. myTimer.addEventListener( TimerEvent.TIMER, afficher );
  47. myTimer.start();
 
 
  • Rédiger un commentaire
  • Afficher les commentaires (0)
Vous devez être identifié pour poster un commentaire
Aucun commentaire