     }
 
     /**
-     *  @private
+     * @private
      */
     override protected function initInstance(instance:IEffectInstance):void
     {
         super.initInstance(instance);
         
         var animateInstance:AnimateInstance = AnimateInstance(instance);
+
+        animateInstance.addEventListener(AnimationEvent.ANIMATION_START, animationEventHandler);
+        animateInstance.addEventListener(AnimationEvent.ANIMATION_UPDATE, animationEventHandler);
+        animateInstance.addEventListener(AnimationEvent.ANIMATION_REPEAT, animationEventHandler);
+        animateInstance.addEventListener(AnimationEvent.ANIMATION_END, animationEventHandler);
 
         if (easer)
             animateInstance.easer = easer;

use namespace mx_internal;

[DefaultProperty("propertyValuesList")]

/**
 * This effect animates an arbitrary set of properties between values, as specified

    //--------------------------------------------------------------------------

    /**
     * Constructor. 
     */
    public function Animate(target:Object = null)
    {
