         if (Math.abs(newY - targetY) > 0.1)
             centerY = targetY + originalOffsetY;
 
-        var rotateValue:Number = Number(event.animation.currentValue[0]);     
+        var rotateValue:Number = Number(animation.currentValue["rotation"]);     
         var radVal:Number = Math.PI * rotateValue / 180;
 
         newX = centerX - originX * Math.cos(radVal) + originY * Math.sin(radVal);

     * We override updateHandler because we must set x and y according
     * to the current target location and the specified rotationX/Y values.
     */
    override protected function updateHandler(event:AnimationEvent):void
    {
        var targetX:Number = getCurrentValue("x");
        var targetY:Number = getCurrentValue("y");

package spark.effects.supportClasses
{

import spark.effects.SimpleMotionPath;
import spark.effects.animation.Animation;

//  Let (phi) be angle between r=(Ox,Oy - Cx,Cy) and -X Axis.
//   (theta) be clockwise further angle of rotation.
