         if (!timer)
         {
             Timeline.pulse();
-            timer = new Timer(_resolution);
+            timer = new Timer(TIMER_RESOLUTION);
             timer.addEventListener(TimerEvent.TIMER, timerHandler);
             timer.start();
         }

    {
        var i:int;
        
        currentValue = [];
        if (duration == 0)
        {
            for (i = 0; i < animationProperties.length; ++i)
                currentValue[0] = animationProperties[i].
                    keyframes[animationProperties[i].keyframes.length - 1].value;
            return;
        }
    
        if (_invertValues)
            currentTime = duration - currentTime;
    
        _elapsedFraction = easer.ease(currentTime/duration);

        if (animationProperties)
            for (i = 0; i < animationProperties.length; ++i)
                currentValue[i] = animationProperties[i].getValue(_elapsedFraction);
    }

    /**

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


    /**
     * @private
     * 
     * The time being used in the current frame calculations. This time is
     * shared by all active animations.
     */
    private static var intervalTime:Number = NaN;

    // A single Timer object runs all animations in the process
    private static var activeAnimations:Array = [];
    private static var timer:Timer = null;

    private var arrayMode:Boolean;
    // TODO: more efficient way to store/remove these than in an array?
