Очевидно, что это может не соответствовать вашему приложению, но ради аргументов, если бы я хотел иметь hSlider, который контролировал бы значение даты в данном диапазоне, я бы установил ползунок вверх, чтобы он возвращал значение от 0 до 1, и использовал что в процентах миллисекунд между двумя датами. Примером этого может быть:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:Script>
<![CDATA[
import mx.events.SliderEvent;
private static var START_DATE : Date = new Date(2009,0);
private static var END_DATE : Date = new Date(2010,0);
[Bindable]
protected var currentDate : Date;
protected function dateSliderChangeHandler(event : SliderEvent) : void
{
var differenceInMilli : Number = END_DATE.time - START_DATE.time;
var percantageMilli : Number = differenceInMilli * event.value;
var currentDateInMilli : Number = START_DATE.time + percantageMilli;
currentDate = new Date(currentDateInMilli);
}
]]>
</mx:Script>
<mx:HSlider id="dateSlider"
width="200"
minimum="0"
maximum="1"
change="dateSliderChangeHandler(event)" />
<mx:Label text="{currentDate}" />
Таким образом, мне не нужно создавать массив всех дат. Очевидно, что если вам нужна только определенная точность даты, вам понадобится дополнительная логика для округления дат вверх или вниз.