     
         _elapsedFraction = easer.ease(currentTime/duration);
 
-        return interpolator.interpolate(_elapsedFraction, startValue, endValue);
+        if (animationProperties)
+            for (i = 0; i < animationProperties.length; ++i)
+                currentValue[i] = animationProperties[i].getValue(_elapsedFraction);
     }
 
     /**

     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    private function sendAnimationEvent(eventType:String, value:Object):void
    {
        var event:AnimationEvent = new AnimationEvent(eventType);
        event.value = value;                
        event.animation = this;
        dispatchEvent(event);                
    }

    /**
     * @private
     * 
     * Calculates and returns the appropriate value give the elapsed time
     * of the animation
     */
    private function getCurrentValue(currentTime:Number):Object
    {
        if (duration == 0)
        {
            return endValue;
        }
    
        if (_invertValues)

 *  @productversion Flex 4
 */
[Event(name="animationEnd", type="mx.events.AnimationEvent")]

[DefaultProperty("animationProperties")]

//--------------------------------------
//  Other metadata
