private void SetAnimationEntry(QueuedAnimation entry)
        {
            previous = null;

            QueuedAnimation current = this.current;

            if (current != null)
            {
                current.OnEnd(this);
                if (End != null)
                {
                    End(this, EventArgs.Empty);
                }

                mixDuration = data.GetMix(current.animation, entry.animation);
                if (mixDuration > 0)
                {
                    mixTime  = 0;
                    previous = current;
                }
            }
            this.current = entry;

            entry.OnStart(this);
            if (Start != null)
            {
                Start(this, EventArgs.Empty);
            }
        }