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)
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)

Twitter
Netvibes
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.
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.
Youpyoup
Pour l’ex.1 je trouve inutile de mettre le mois et l’année dans le cursor. On se repère bien sans car les années sont indiquées en dessous ainsi que les mois, de façon claire. Du coup tu gagnes pas mal de largeur.
Et sinon, peut être comme ça : http://www.turtles.fr/lutinc.jpg
Est-ce faisable ? schéma compréhensible ? ^^