FairyGUI.Transition.ApplyValue C# (CSharp) Method

ApplyValue() public method

public ApplyValue ( TransitionItem item, TransitionValue value ) : void
item TransitionItem
value TransitionValue
return void
        void ApplyValue(TransitionItem item, TransitionValue value)
        {
            item.target._gearLocked = true;

            switch (item.type)
            {
                case TransitionActionType.XY:
                    if (item.target == _owner)
                    {
                        float f1, f2;
                        if (!value.b1)
                            f1 = item.target.x;
                        else
                            f1 = value.f1 + _ownerBaseX;
                        if (!value.b2)
                            f2 = item.target.y;
                        else
                            f2 = value.f2 + _ownerBaseY;
                        item.target.SetXY(f1, f2);
                    }
                    else
                    {
                        if (!value.b1)
                            value.f1 = item.target.x;
                        if (!value.b2)
                            value.f2 = item.target.y;
                        item.target.SetXY(value.f1, value.f2);
                    }
                    if (invalidateBatchingEveryFrame)
                        _owner.InvalidateBatchingState();
                    break;

                case TransitionActionType.Size:
                    if (!value.b1)
                        value.f1 = item.target.width;
                    if (!value.b2)
                        value.f2 = item.target.height;
                    item.target.SetSize(value.f1, value.f2);
                    if (invalidateBatchingEveryFrame)
                        _owner.InvalidateBatchingState();
                    break;

                case TransitionActionType.Pivot:
                    item.target.SetPivot(value.f1, value.f2);
                    if (invalidateBatchingEveryFrame)
                        _owner.InvalidateBatchingState();
                    break;

                case TransitionActionType.Alpha:
                    item.target.alpha = value.f1;
                    break;

                case TransitionActionType.Rotation:
                    item.target.rotation = value.f1;
                    if (invalidateBatchingEveryFrame)
                        _owner.InvalidateBatchingState();
                    break;

                case TransitionActionType.Scale:
                    item.target.SetScale(value.f1, value.f2);
                    if (invalidateBatchingEveryFrame)
                        _owner.InvalidateBatchingState();
                    break;

                case TransitionActionType.Skew:
                    item.target.skew = new Vector2(value.f1, value.f2);
                    if (invalidateBatchingEveryFrame)
                        _owner.InvalidateBatchingState();
                    break;

                case TransitionActionType.Color:
                    ((IColorGear)item.target).color = value.c;
                    break;

                case TransitionActionType.Animation:
                    if (!value.b1)
                        value.i = ((IAnimationGear)item.target).frame;
                    ((IAnimationGear)item.target).frame = value.i;
                    ((IAnimationGear)item.target).playing = value.b;
                    break;

                case TransitionActionType.Visible:
                    item.target.visible = value.b;
                    break;

                case TransitionActionType.Transition:
                    Transition trans = ((GComponent)item.target).GetTransition(value.s);
                    if (trans != null)
                    {
                        if (value.i == 0)
                            trans.Stop(false, true);
                        else if (trans.playing)
                            trans._totalTimes = value.i == -1 ? int.MaxValue : value.i;
                        else
                        {
                            item.completed = false;
                            _totalTasks++;
                            if (_reversed)
                                trans.PlayReverse(value.i, 0, () => { __playTransComplete(item); });
                            else
                                trans.Play(value.i, 0, () => { __playTransComplete(item); });
                            if (_timeScale != 1)
                                trans.timeScale = _timeScale;
                        }
                    }
                    break;

                case TransitionActionType.Sound:
                    AudioClip sound = UIPackage.GetItemAssetByURL(value.s) as AudioClip;
                    if (sound != null)
                        Stage.inst.PlayOneShotSound(sound, value.f1);
                    break;

                case TransitionActionType.Shake:
                    item.startValue.f1 = 0; //offsetX
                    item.startValue.f2 = 0; //offsetY
                    item.startValue.f3 = item.value.f2;//shakePeriod
                    Timers.inst.AddUpdate(item.__Shake, this);
                    _totalTasks++;
                    item.completed = false;
                    break;

                case TransitionActionType.ColorFilter:
                    ColorFilter cf = item.target.filter as ColorFilter;
                    if (cf == null)
                    {
                        cf = new ColorFilter();
                        item.target.filter = cf;
                        item.filterCreated = true;
                    }
                    else
                    {
                        cf.Reset();
                    }
                    cf.AdjustBrightness(value.f1);
                    cf.AdjustContrast(value.f2);
                    cf.AdjustSaturation(value.f3);
                    cf.AdjustHue(value.f4);
                    break;
            }

            item.target._gearLocked = false;
        }

Usage Example

示例#1
0
        virtual public void Setup(Transition owner)
        {
            easeType            = Ease.OutQuad;
            delayedCallDelegate = () => { owner.OnDelayedCall(this); };

            if (tween)
            {
                tweenStartDelegate = () => { if (hook != null)
                                             {
                                                 hook();
                                             }
                };
                tweenUpdateDelegate   = () => { owner.ApplyValue(this, value); };
                tweenCompleteDelegate = () => { owner.OnTweenComplete(this); };
            }
        }