FairyGUI.PlayState.Update C# (CSharp) Method

Update() public method

public Update ( MovieClip mc, UpdateContext context ) : void
mc MovieClip
context UpdateContext
return void
        public void Update(MovieClip mc, UpdateContext context)
        {
            if (_lastUpdateFrameId == UpdateContext.frameId) //PlayState may be shared, only update once per frame
                return;

            _lastUpdateFrameId = UpdateContext.frameId;
            float time = Time.time;
            float elapsed = time - _lastTime;
            if (ignoreTimeScale && Time.timeScale != 0)
                elapsed /= Time.timeScale;
            _lastTime = time;

            reachEnding = false;
            _curFrameDelay += elapsed;
            float interval = mc.interval + mc.frames[_curFrame].addDelay + ((_curFrame == 0 && repeatedCount > 0) ? mc.repeatDelay : 0);
            if (_curFrameDelay < interval)
                return;

            _curFrameDelay -= interval;
            if (_curFrameDelay > mc.interval)
                _curFrameDelay = mc.interval;

            if (mc.swing)
            {
                if (reversed)
                {
                    _curFrame--;
                    if (_curFrame < 0)
                    {
                        _curFrame = Mathf.Min(1, mc.frameCount - 1);
                        repeatedCount++;
                        reversed = !reversed;
                    }
                }
                else
                {
                    _curFrame++;
                    if (_curFrame > mc.frameCount - 1)
                    {
                        _curFrame = Mathf.Max(0, mc.frameCount - 2);
                        repeatedCount++;
                        reachEnding = true;
                        reversed = !reversed;
                    }
                }
            }
            else
            {
                _curFrame++;
                if (_curFrame > mc.frameCount - 1)
                {
                    _curFrame = 0;
                    repeatedCount++;
                    reachEnding = true;
                }
            }
        }

Usage Example

        public override void Update(UpdateContext context, float parentAlpha)
        {
            if (_needRebuild)
            {
                Rebuild();
            }

            if (_playing && frameCount != 0 && _status != 3)
            {
                playState.Update(this, context);
                if (_currentFrame != playState.currrentFrame)
                {
                    if (_status == 1)
                    {
                        _currentFrame           = _start;
                        playState.currrentFrame = _currentFrame;
                        _status = 0;
                    }
                    else if (_status == 2)
                    {
                        _currentFrame           = _endAt;
                        playState.currrentFrame = _currentFrame;
                        _status = 3;
                        Stage.inst.onPostUpdate.Add(__playEnd);
                    }
                    else
                    {
                        _currentFrame = playState.currrentFrame;
                        if (_currentFrame == _end)
                        {
                            if (_times > 0)
                            {
                                _times--;
                                if (_times == 0)
                                {
                                    _status = 2;
                                }
                                else
                                {
                                    _status = 1;
                                }
                            }
                        }
                    }
                    quadBatch.SetQuadAlpha(_currentFrame, 1, 1f, 0f);
                }
            }
            quadBatch.Update(context, alpha * parentAlpha);
        }
All Usage Examples Of FairyGUI.PlayState::Update