/*===================================== Slice ========================================*/ public static IAni Slice(IAni tween, float begin, float end, bool isPercent = false) { IAni newTween; if (isPercent) { begin = tween.Duration * begin; end = tween.Duration * end; } if (begin > end) { newTween = new ReversedTween(new SlicedTween(tween as IIAni, end, begin), 0); newTween.FrameSkip = tween.FrameSkip; return(newTween); } newTween = new SlicedTween(tween as IIAni, begin, end); newTween.FrameSkip = tween.FrameSkip; return(newTween); }
/*===================================== Reverse ========================================*/ public static IAni Reverse(IAni tween, bool reversePosition = true) { IAni newTween; float pos = reversePosition ? tween.Duration - tween.Position : 0.0f; if (tween is ReversedTween) { newTween = new TweenDecorator((tween as ReversedTween).baseTween, pos); newTween.FrameSkip = tween.FrameSkip; return(newTween); } if (tween is TweenDecorator) { newTween = (tween as TweenDecorator).baseTween; newTween.FrameSkip = tween.FrameSkip; } newTween = new ReversedTween(tween as IIAni, pos); newTween.FrameSkip = tween.FrameSkip; return(newTween); }