         // shader filter during the animation.
         oldFilters  = target.filters;
     }    
-    override protected function endHandler(event:AnimationEvent):void
+    override public function animationEnd(animation:Animation):void
     {
         target.filters = oldFilters;
         oldFilters = null;
-        super.endHandler(event);
+        super.animationEnd(animation);
     }
 
     /**

     */
    override protected function setValue(property:String, value:Object):void
    {
        if (roundValues && (value is Number))
            value = Math.round(Number(value));
            
        shader.data.progress.value = [value];
        target.filters = [shaderFilter];
    }

    override protected function startHandler(event:AnimationEvent):void
    {
        super.startHandler(event);
        // Note that we don't want the old filters active on the target
        // during the animation; these filters will already be accounted
        // for when we take a bitmap snapshot of the object. Applying

import mx.containers.Panel;
import mx.core.Application;
import mx.core.UIComponent;

import spark.effects.AnimateShaderTransition;
import spark.effects.SimpleMotionPath;
import spark.effects.animation.Animation;
    
public class AnimateShaderTransitionInstance extends AnimateInstance
{
