      */
     public function get valueFrom():Object
     {
-        return _valueFrom;
+        return keyframes[0].value;
     }
     public function set valueFrom(value:Object):void
     {
-        _valueFrom = value;
+        keyframes[0].value = value;
     }
 
-    private var _valueTo:Object;
     /**
      * The value that the named property will animate to.
      * 

     */
    public function get valueBy():Object
    {
        return _valueBy;
    }
    public function set valueBy(value:Object):void
    {
        _valueBy = value;
    }
    
    public function AnimationProperty(property:String = null, valueFrom:Object = null,
        valueTo:Object = null, valueBy:Object = null)
    {
        super();
        this.property = property;
        this.valueFrom = valueFrom;
        this.valueTo = valueTo;
        this.valueBy = valueBy;
    }
}
}

package mx.effects
{
import mx.effects.interpolation.IInterpolator;
import mx.effects.interpolation.NumberArrayInterpolator;

import spark.effects.KeyFrame;
import spark.effects.MotionPath;
    
    
/**
 * This class is used to hold the name of a property and the values that
 * that property will assume over time for instances of the FxAnimate
 * effect, or subclasses of that effect. This class is a simple utility
 * subclass of MotionPath, setting up two keyframes to hold the 
 * <code>valueFrom</code>, <code>valueTo</code>, and
 * <code>valueBy</code> properties.
 *  
 *  @langversion 3.0
 *  @playerversion Flash 10
 *  @playerversion AIR 1.5
 *  @productversion Flex 4
 */
public class AnimationProperty extends MotionPath
{
 
    //--------------------------------------------------------------------------
    //
    //  Constructor
    //
    //--------------------------------------------------------------------------

    /**
     * Constructs an AnimationProperty object. The from/to/by values are used
     * to construct a simple one-keyframe MotionPath where the from value
     * is defined in the MotionPath object itself and the single keyframe.
     * 
     * @param property The name of the property being animated
     * @param valueFrom The value that the animation starts from
     * @param valueTo The value that the animation ends on
     * @param valueBy An optional parameter that specifies the delta with
     * which to calculate either the from or to values.
     */    
    public function AnimationProperty(property:String = null, valueFrom:Object = null,
        valueTo:Object = null, valueBy:Object = null)
    {
        super();
        this.property = property;
        keyframes = [new KeyFrame(0, valueFrom), new KeyFrame(1, valueTo, valueBy)];
        if (valueFrom is Array && valueTo is Array)
            interpolator = NumberArrayInterpolator.getInstance();
    }

    //--------------------------------------------------------------------------
    //
    //  Properties
    //
    //--------------------------------------------------------------------------

    /**
     * The starting value for the property during the animation.
     * 
     * <p>Null or NaN (in the case of Numbers) element values indicate that a
     * value must be determined dynamically at runtime, either by
     * getting the value from the target property directly or calculating
     * it if the other value is valid and there is also a valid 
     * <code>valueBy</code> value supplied.</p>
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
