コード例 #1
0
ファイル: UpdateTickerBase.cs プロジェクト: bmjoy/XTween
        public void RemoveTimer(TimerListener listener)
        {
            TimerListener l = _first;

            while (l != null)
            {
                if (l == listener)
                {
                    if (l.prevListener != null)
                    {
                        l.prevListener.nextListener = l.nextListener;
                        l.nextListener = null;
                    }
                    else
                    {
                        _first = l.nextListener;
                    }
                    if (l.nextListener != null)
                    {
                        l.nextListener.prevListener = l.prevListener;
                        l.prevListener = null;
                    }
                    --_numListeners;
                }

                l = l.nextListener;
            }
            // Debug.Log("Remove: " + _numListeners);
        }
コード例 #2
0
ファイル: UpdateTickerBase.cs プロジェクト: bmjoy/XTween
 private void InitializeInEditor()
 {
     _time                   = t = 0f;
     _numListeners           = n = 0;
     _tickerListenerPaddings = null;
     _first                  = prevListener = listener = l = ll = null;
     Start();
 }
コード例 #3
0
        private TimerListener SetRemoveListener(TimerListener currentListener, TimerListener addListener)
        {
            if (currentListener != null)
            {
                currentListener.nextListener = addListener;
                addListener.prevListener     = currentListener;
            }

            return(addListener);
        }
コード例 #4
0
ファイル: UpdateTickerBase.cs プロジェクト: bmjoy/XTween
        void Start()
        {
            _tickerListenerPaddings = new List <TimerListener>();

            prevListener = null;

            for (int i = 0; i < 10; ++i)
            {
                TimerListener listener = new TimerListener();
                if (prevListener != null)
                {
                    prevListener.nextListener = listener;
                    listener.prevListener     = prevListener;
                }
                prevListener = listener;
                _tickerListenerPaddings.Add(listener);
            }
        }
コード例 #5
0
ファイル: UpdateTickerBase.cs プロジェクト: bmjoy/XTween
        public void AddTimer(TimerListener listener)
        {
            if (listener.nextListener != null || listener.prevListener != null)
            {
                return;
            }
            if (_first != null)
            {
                if (_first.prevListener != null)
                {
                    _first.prevListener.nextListener = listener;
                    listener.prevListener            = _first.prevListener;
                }
                listener.nextListener = _first;
                _first.prevListener   = listener;
            }
            _first = listener;

            ++_numListeners;
            // Debug.Log("Add: " + _numListeners);
        }
コード例 #6
0
ファイル: UpdateTickerBase.cs プロジェクト: bmjoy/XTween
        protected virtual void UpdateTickers()
        {
            this.TimeSet();

            t = _time;
            for (int i = 0; i < _deltaTimeLength; ++i)
            {
                this._deltaTimeArray[i].Update(_time);
            }
            n        = 8 - (_numListeners % 8);
            listener = _tickerListenerPaddings[0];
            l        = _tickerListenerPaddings[n];
            ll       = null;


            if ((l.nextListener = _first) != null)
            {
                _first.prevListener = l;
            }

            TimerListener removeListener = null;

            while (listener.nextListener != null)
            {
                if ((listener = listener.nextListener).Tick(t))
                {
                    if (listener.prevListener != null)
                    {
                        listener.prevListener.nextListener = listener.nextListener;
                    }
                    if (listener.nextListener != null)
                    {
                        listener.nextListener.prevListener = listener.prevListener;
                    }
                    if (listener == _first)
                    {
                        _first = listener.nextListener;
                    }
                    ll = listener.prevListener;
                    listener.nextListener = null;
                    listener.prevListener = null;
                    removeListener        = listener;
                    listener = ll;
                    --_numListeners;
                }
                if ((listener = listener.nextListener).Tick(t))
                {
                    if (listener.prevListener != null)
                    {
                        listener.prevListener.nextListener = listener.nextListener;
                    }
                    if (listener.nextListener != null)
                    {
                        listener.nextListener.prevListener = listener.prevListener;
                    }
                    if (listener == _first)
                    {
                        _first = listener.nextListener;
                    }
                    ll = listener.prevListener;
                    listener.nextListener = null;
                    listener.prevListener = null;
                    removeListener        = listener;
                    listener = ll;
                    --_numListeners;
                }
                if ((listener = listener.nextListener).Tick(t))
                {
                    if (listener.prevListener != null)
                    {
                        listener.prevListener.nextListener = listener.nextListener;
                    }
                    if (listener.nextListener != null)
                    {
                        listener.nextListener.prevListener = listener.prevListener;
                    }
                    if (listener == _first)
                    {
                        _first = listener.nextListener;
                    }
                    ll = listener.prevListener;
                    listener.nextListener = null;
                    listener.prevListener = null;
                    removeListener        = listener;
                    listener = ll;
                    --_numListeners;
                }
                if ((listener = listener.nextListener).Tick(t))
                {
                    if (listener.prevListener != null)
                    {
                        listener.prevListener.nextListener = listener.nextListener;
                    }
                    if (listener.nextListener != null)
                    {
                        listener.nextListener.prevListener = listener.prevListener;
                    }
                    if (listener == _first)
                    {
                        _first = listener.nextListener;
                    }
                    ll = listener.prevListener;
                    listener.nextListener = null;
                    listener.prevListener = null;
                    removeListener        = listener;
                    listener = ll;
                    --_numListeners;
                }
                if ((listener = listener.nextListener).Tick(t))
                {
                    if (listener.prevListener != null)
                    {
                        listener.prevListener.nextListener = listener.nextListener;
                    }
                    if (listener.nextListener != null)
                    {
                        listener.nextListener.prevListener = listener.prevListener;
                    }
                    if (listener == _first)
                    {
                        _first = listener.nextListener;
                    }
                    ll = listener.prevListener;
                    listener.nextListener = null;
                    listener.prevListener = null;
                    removeListener        = listener;
                    listener = ll;
                    --_numListeners;
                }
                if ((listener = listener.nextListener).Tick(t))
                {
                    if (listener.prevListener != null)
                    {
                        listener.prevListener.nextListener = listener.nextListener;
                    }
                    if (listener.nextListener != null)
                    {
                        listener.nextListener.prevListener = listener.prevListener;
                    }
                    if (listener == _first)
                    {
                        _first = listener.nextListener;
                    }
                    ll = listener.prevListener;
                    listener.nextListener = null;
                    listener.prevListener = null;
                    removeListener        = listener;
                    listener = ll;
                    --_numListeners;
                }
                if ((listener = listener.nextListener).Tick(t))
                {
                    if (listener.prevListener != null)
                    {
                        listener.prevListener.nextListener = listener.nextListener;
                    }
                    if (listener.nextListener != null)
                    {
                        listener.nextListener.prevListener = listener.prevListener;
                    }
                    if (listener == _first)
                    {
                        _first = listener.nextListener;
                    }
                    ll = listener.prevListener;
                    listener.nextListener = null;
                    listener.prevListener = null;
                    removeListener        = listener;
                    listener = ll;
                    --_numListeners;
                }
                if ((listener = listener.nextListener).Tick(t))
                {
                    if (listener.prevListener != null)
                    {
                        listener.prevListener.nextListener = listener.nextListener;
                    }
                    if (listener.nextListener != null)
                    {
                        listener.nextListener.prevListener = listener.prevListener;
                    }
                    if (listener == _first)
                    {
                        _first = listener.nextListener;
                    }
                    ll = listener.prevListener;
                    listener.nextListener = null;
                    listener.prevListener = null;
                    removeListener        = listener;
                    listener = ll;
                    --_numListeners;
                }
            }


            if ((_first = l.nextListener) != null)
            {
                _first.prevListener = null;
            }
            l.nextListener = _tickerListenerPaddings[n + 1];
            if (removeListener != null)
            {
                removeListener.TickerRemoved();
            }
        }
コード例 #7
0
 public void RemoveTimer(TimerListener listener)
 {
 }
コード例 #8
0
 public void AddTimer(TimerListener listener)
 {
 }