     private function start(event:TimerEvent = null):void
     {
         numRepeats = 1;
-        
         setupInterpolation();
         setupEasing();
         

    {
        if (id >= 0)
            Animation.removeAnimationAt(id);
    }
    
    /**

     */
    public function end():void
    {
        if (_isPlaying)
        {
            // TODO (chaase): Check whether we already send out a final
            // UPDATE event with the end value; if so, this dup should be
            // removed
            var value:Object = getCurrentValue(duration);
            
            sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE, value);
            sendAnimationEvent(AnimationEvent.ANIMATION_END, value);
            
            for each (var animationTarget:IAnimationTarget in animationTargets)
            {
                animationTarget.animationEnd(this, value);
            }           
    
            // If animation has been added, id >= 0
            // but if duration = 0, this might not be the case.
            if (id >= 0)
                Animation.removeAnimationAt(id);
            
            _invertValues = false;
            _doReverse = false;
            _isPlaying = false;
        }
    }

    /**
