protected void Start(Control control, TransitionType transitionType, int duration, AnimationAction actionHandler, AnimationFinishedEvaluator evaluatorHandler)
 {
     this.targetControl    = control;
     this.transitionType   = transitionType;
     this.actionHandler    = actionHandler;
     this.evaluatorHandler = evaluatorHandler;
     this.counter          = 0;
     this.startTime        = 0;
     this.targetTime       = duration;
     this.timer            = DelayedCall.Start(new DelayedCall.Callback(this.DoAnimation), duration);
 }
        public static DelayedCall StartAsync(DelayedCall.Callback cb, int milliseconds)
        {
            DelayedCall delayedCall = DelayedCall.CreateAsync(cb, milliseconds);

            if (milliseconds > 0)
            {
                delayedCall.Start();
            }
            else if (milliseconds == 0)
            {
                delayedCall.FireNow();
            }
            return(delayedCall);
        }