 		
 		public function set timeFunction(value : Function) : void
 		{
+			if (value != null && _timeFunction == null)
+			{
+				_lastTime = value(_lastTime);
+			}
+			else if (_timeFunction != null)
+			{
+				var time		: int = _reverse ? -getTimer() : getTimer();
+				var prevTime	: int = _timeFunction(time);
+				var prevDeltaT	: int = prevTime - _lastTime;
+				
+				if (value != null)
+					time = value(time);
+				
+				_lastTime = time - prevDeltaT;
+			}
+			
 			_timeFunction = value;
 		}
 		

		
		public function set reverse(value:Boolean):void
		{
			_reverse = value;
			updateNextLabel(_currentTime);
		}

		protected var _timeFunction				: Function;
		
		protected var _lastTime					: int;
		protected var _lastTimeUntransformed	: int;
		
		protected var _labelNames				: Vector.<String>;
		protected var _labelTimes				: Vector.<Number>;
