package flare.animate.interpolate { /** * Interpolator for Date values. */ public class DateInterpolator extends Interpolator { private var _start:Number; private var _end:Number; private var _d:Date; /** * Creates a new DateInterpolator. * @param target the object whose property is being interpolated * @param property the property to interpolate * @param start the starting date value to interpolate from * @param end the target date value to interpolate to */ public function DateInterpolator(target:Object, property:String, start:Object, end:Object) { super(target, property, start, end); } /** * Initializes this interpolator. * @param start the starting value of the interpolation * @param end the target value of the interpolation */ protected override function init(start:Object, end:Object) : void { _d = new Date(); _start = (start as Date).time; _end = (end as Date).time - _start; } /** * Calculate and set an interpolated property value. * @param f the interpolation fraction (typically between 0 and 1) */ public override function interpolate(f:Number) : void { _d.time = _start + f * _end; _prop.setValue(_target, _d); } } // end of class DateInterpolator }