Tutoriaux

Tutoriaux signées par la FlashSquare team…

Veille technologique

Ressources Flash et Flex, synthèse de veille techno…

Ressources & Apps

Ressources et applications « home made »…

LAB

Expérimentations autour de Flash, Flex et autres …

Site de la semaine

Sélection du site de la semaine, vu par 2 développeurs…

Home » Ressources & Apps

AS3 Basics : dateSlider

Ecris par LutinCapuche le Lundi 5 octobre 20093 commentaires
AS3 Basics : dateSlider

Nouveau tools Flash-Square bien utile notamment pour filtrer des données par date : voici le « dateSlider’.

Parmi les fonctionnalités :
-resizable
-stylisable
-échelle de temps paramétrable
-getDate/setDate

Aperçu :

Les sources ici : DateSlider 0.1 (63)

DateSlider

Exemple d’utilisation :

//format des textfields monthItem, cursor, et year, peuvent être différents
_tfFormat = new TextFormat();
_tfFormat.font = "Arial";
_tfFormat.color = 0xcccccc;
_tfFormat.size = 10;

//label des mois a afficher. Doit en comporter 12 dans l'ordre logique
var aMonthLabels:Array = new Array("Jan.","Fév.","Mars","Avr.","Mai","Juin","Juil.","Août","Sept.","Oct.","Nov.","Déc.");

//instanciation
_dateTimeLine1 = new DateTimeLine();
//ecoute le changement de date
_dateTimeLine1.addEventListener(Event.CHANGE, changeDateHandler,false,0,true);
//initialise les labels des mois a afficher
_dateTimeLine1.setMonthLabels(aMonthLabels);
//indique si on affiche ou pas l'annee de la periode
_dateTimeLine1.isYearDisplayed = true;
//initialise la période a afficher
_dateTimeLine1.setTimePadding(09,2009,08,2010);
//initialise les styles
_dateTimeLine1.setStyleTimeLine(5,10,0x2f2f2f,0xcccccc,0x2e62af,1,0.5,1);
_dateTimeLine1.setStyleCursor(0x2e62af,1,20,_tfFormat,2);
_dateTimeLine1.setStyleMonth(0xcccccc,1,10,_tfFormat);
_dateTimeLine1.setStyleYear(_tfFormat,0xffffff,0.3);
_dateTimeLine1.setSize(570,50);
//variable qui empêche le curseur d'aller plus loin que aujourd'hui
_dateTimeLine1.isLockToday = false;
_dateTimeLine1.y = 50;
_dateTimeLine1.init();
this.addChild(_dateTimeLine1);

Méthodes public :

  • init()
  • setSize(w:int,h:int)
  • setMonthLabels(aLabels:Array)
  • setTimePadding(monthStart:int,yearStart:int,monthEnd:int,yearEnd:int)
  • setCursorToday()
  • getDate():Date
  • setDate(date:Date)
  • isLockToday(b:Boolean)
  • isYearDisplayed(b:Boolean)
  • setStyleTimeLine(radiusCorner:int=5,borderMargin:int=10,bgColor:uint = 0×2F2F2F, bgProgressColor:uint = 0xffffff, progressColor:uint = 0×2E62AF,bgAlpha:Number = 1,bgProgressAlpha:Number = 1, progressAlpha:Number = 1)
  • setStyleCursor(bgColor:uint=0×2E62AF,bgAlpha:Number = 1, hCursor:int=14, tfFormat:TextFormat = null, radiusCorner:int = 5)
  • setStyleYear(tfFormat:TextFormat = null,yearBgColor:uint=0xffffff, yearBgAlpha:Number = 0.5)
  • setStyleMonth(lineColor:uint=0xffffff,lineAlpha:Number = 1, hLine:int=10, tfFormat:TextFormat = null)

Téléchargement :

Les sources ici : DateSlider 0.1 (63)

Tags:, , ,

Articles associés



3 commentaires »

  • Alex dit :

    Classe, j’aimerai l’utiliser dans un futur projet :)

    Suggestions pour la v0.2 :
    - gérer le release out de l’étiquette (ce qui arrive souvent sur l’exemple 2).
    - pouvoir accéder aux extrémités de la timeline en manipulant l’étiquette.

    • LutinCapuche dit :

      Allo!
      Alors pour le point 1, je le qualifierai plutôt de bug, je vais le corriger soon.
      Pour le point 2, comment suggèrerai tu de faire ca? Mon problème est esthétique et ergonomique: si je peux dragguer le cursor jusqu’aux extrémités, cela veut dire que le cursor va déborder a droite et a gauche. Or si la timeline est en fullscreen, le cursor va alors sortir de la scène, et ca ca me dérange pas mal. Une proposition?
      Ensuite j’ai un autre point a rajouter pour la v2, ce serait un curseur « date start » et un curseur « date end », afin de pouvoir sélectionner des intervals de temps précis.

Laisser un commentaire!

Ajoutez votre commentaire ci dessous, ou trackback sur votre propre site. Vous pouvez aussi suivre ces commentaires via RSS.

Soyez gentils, restez polis, et ne vous écartez pas trop du sujet! Pas de spam SVP.