         // The rest of what we need to do is handled by the stop() function
         stop();
     }
+    
+    private function addToDelayedAnimations(timeToDelay:Number):void
+    {
+        // Run timer if it's not currently running
+        if (!timer)
+        {
+            Timeline.pulse();
+            timer = new Timer(_resolution);
+            timer.addEventListener(TimerEvent.TIMER, timerHandler);
+            timer.start();
+        }
+        var animStartTime:int = Timeline.currentTime + timeToDelay;
+        var insertIndex:int = -1;
+        for (var i:int = 0; i < delayedStartAnims.length; ++i)
+        {
+            var timeAtIndex:int = 
+                delayedStartTimes[delayedStartAnims[i]];
+            if (animStartTime < timeAtIndex)
+            {
+                insertIndex = i;
+                break;
+            }
+        }
+        if (insertIndex >= 0)
+            delayedStartAnims.splice(insertIndex, 0, this);
+        else
+            delayedStartAnims.push(this);
+        delayedStartTimes[this] = animStartTime;
+    }
 
     /**
      * Start the animation

    public function play():void
    {
        if (startDelay > 0)
        {
            // Run timer if it's not currently running
            if (!timer)
            {
                Timeline.pulse();
                timer = new Timer(_resolution);
                timer.addEventListener(TimerEvent.TIMER, timerHandler);
                timer.start();
            }
            var animStartTime:int = Timeline.currentTime + startDelay;
            var insertIndex:int = -1;
            for (var i:int = 0; i < delayedStartAnims.length; ++i)
            {
                var timeAtIndex:int = 
                    delayedStartTimes[delayedStartAnims[i]];
                if (animStartTime < timeAtIndex)
                {
                    insertIndex = i;
                    break;
                }
            }
            if (insertIndex >= 0)
                delayedStartAnims.splice(insertIndex, 0, this);
            else
                delayedStartAnims.push(this);
            delayedStartTimes[this] = animStartTime;
        }
        else
        {
            start();
        }
    }
    
    /**

    private var startTime:Number;
    // Track number of times repeated for use by repeatCount logic
    private var numRepeats:Number;
    // The amount of time that the animation should delay before
    // starting. This is set to a non-negative number only when
    // an Animation is paused during its startDelay phase
    private var delayTime:Number = -1;
    

    private var easingFunction:Function;
    private static var defaultEaser:IEaser = new Sine(.5); 
