protected virtual bool OnAnimationActorStep(Actor <BounceFadePopupWidget> actor)
        {
            if (actor.Expired)
            {
                OnAnimationCompleted();
                return(false);
            }

            // for the first half, use an easing
            if (actor.Percent < 0.5)
            {
                scale   = Choreographer.Compose(actor.Percent * 2, BounceEasing);
                opacity = 1.0;
            }
            //for the second half, vary opacity linearly from 1 to 0.
            else
            {
                scale   = Choreographer.Compose(1.0, BounceEasing);
                opacity = 1 - 2 * (actor.Percent - 0.5);
            }
            return(true);
        }
        bool OnAnimationActorStep(Actor <BounceFadePopupWindow> actor)
        {
            if (actor.Expired)
            {
                Destroy();
                return(false);
            }

            // for the first half, use an easing
            if (actor.Percent < 0.5)
            {
                scale   = Choreographer.Compose(actor.Percent * 2, BounceEasing);
                opacity = 1.0;
            }
            //for the second half, vary opacity linearly from 1 to 0.
            else
            {
                scale   = scale = Choreographer.Compose(1.0, BounceEasing);
                opacity = 2.0 - actor.Percent * 2;
            }
            return(true);
        }