Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///sc_easing(amount, easingFunction)
- enum EasingFunction { Linear,
- SineEaseIn,
- SineEaseOut,
- SineEaseInOut,
- QuadEaseIn,
- QuadEaseOut,
- QuadEaseInOut,
- CubicEaseIn,
- CubicEaseOut,
- CubicEaseInOut,
- QuartEaseIn,
- QuartEaseOut,
- QuartEaseInOut,
- QuintEaseIn,
- QuintEaseOut,
- QuintEaseInOut,
- ExpoEaseIn,
- ExpoEaseOut,
- ExpoEaseInOut,
- CircEaseIn,
- CircEaseOut,
- CircEaseInOut,
- BackEaseIn,
- BackEaseOut,
- BackEaseInOut,
- ElasticEaseIn,
- ElasticEaseOut,
- ElasticEaseInOut,
- BounceEaseIn,
- BounceEaseOut,
- BounceEaseInOut }
- if (argument0 <= 0)
- return 0;
- else if (argument0 >= 1)
- return 1;
- var amount = argument0;
- var function = argument1;
- // Linear
- if (function == EasingFunction.Linear)
- {
- return amount;
- }
- // Sine
- else if (function == EasingFunction.SineEaseIn)
- {
- amount /= 2;
- return -1 * cos(amount * pi) + 1;
- }
- else if (function == EasingFunction.SineEaseOut)
- {
- amount /= 4;
- return sin(amount * pi * 2);
- }
- else if (function == EasingFunction.SineEaseInOut)
- return -0.5 * (cos(amount * pi) - 1);
- // Quad
- else if (function == EasingFunction.QuadEaseIn)
- return amount * amount;
- else if (function == EasingFunction.QuadEaseOut)
- return -1 * amount * (amount - 2);
- else if (function == EasingFunction.QuadEaseInOut)
- {
- amount *= 2;
- if (amount < 1)
- return 0.5 * amount * amount;
- amount--;
- return -0.5 * (amount * (amount - 2) - 1);
- }
- // Cubic
- else if (function == EasingFunction.CubicEaseIn)
- return amount * amount * amount;
- else if (function == EasingFunction.CubicEaseOut)
- {
- amount -= 1;
- return amount * amount * amount + 1;
- }
- else if (function == EasingFunction.CubicEaseInOut)
- {
- amount *= 2;
- if (amount < 1)
- return 0.5 * amount * amount * amount;
- amount -= 2;
- return 0.5 * (amount * amount * amount + 2);
- }
- // Quart
- else if (function == EasingFunction.QuartEaseIn)
- return amount * amount * amount * amount;
- else if (function == EasingFunction.QuartEaseOut)
- {
- amount -= 1;
- return -(amount * amount * amount * amount - 1);
- }
- else if (function == EasingFunction.QuartEaseInOut)
- {
- amount *= 2;
- if (amount < 1)
- return 0.5 * amount * amount * amount * amount;
- amount -= 2;
- return -0.5 * (amount * amount * amount * amount - 2);
- }
- // Quint
- else if (function == EasingFunction.QuintEaseIn)
- return amount * amount * amount * amount * amount;
- else if (function == EasingFunction.QuintEaseOut)
- {
- amount -= 1;
- return amount * amount * amount * amount * amount + 1;
- }
- else if (function == EasingFunction.QuintEaseInOut)
- {
- amount *= 2;
- if (amount < 1)
- return 0.5 * amount * amount * amount * amount * amount;
- amount -= 2;
- return 0.5 * (amount * amount * amount * amount * amount + 2);
- }
- // Expo
- else if (function == EasingFunction.ExpoEaseIn)
- return power(2, 10 * (amount - 1));
- else if (function == EasingFunction.ExpoEaseOut)
- return -power(2, -10 * amount) + 1;
- else if (function == EasingFunction.ExpoEaseInOut)
- {
- amount *= 2;
- if (amount < 1)
- return 0.5 * power(2, 10 * (amount - 1));
- return 0.5 * (-power(2, -10 * (amount - 1)) + 2);
- }
- // Circ
- else if (function == EasingFunction.CircEaseIn)
- return -1 * (sqrt(1 - amount * amount) - 1);
- else if (function == EasingFunction.CircEaseOut)
- {
- amount -= 1;
- return sqrt(1 - amount * amount);
- }
- else if (function == EasingFunction.CircEaseInOut)
- {
- amount *= 2;
- if (amount < 1)
- return -0.5 * (sqrt(1 - amount * amount) - 1);
- amount -= 2;
- return 0.5 * (sqrt(1 - amount * amount) + 1);
- }
- // Back
- else if (function == EasingFunction.BackEaseIn)
- {
- var overshoot = 1.70158;
- return amount * amount * ((overshoot + 1) * amount - overshoot);
- }
- else if (function == EasingFunction.BackEaseOut)
- {
- var overshoot = 1.70158;
- amount -= 1;
- return amount * amount * ((overshoot + 1) * amount + overshoot) + 1;
- }
- else if (function == EasingFunction.BackEaseInOut)
- {
- var overshoot = 2.5949095;
- amount *= 2;
- if (amount < 1)
- return (amount * amount * ((overshoot + 1) * amount - overshoot)) / 2;
- amount -= 2;
- return (amount * amount * ((overshoot + 1) * amount + overshoot)) / 2 + 1;
- }
- // Elastic
- else if (function == EasingFunction.ElasticEaseIn)
- {
- var period = 0.3;
- amount -= 1;
- return -power(2, 10 * amount) * sin((amount - period / 4) * pi * 2 / period);
- }
- else if (function == EasingFunction.ElasticEaseOut)
- {
- var period = 0.3;
- return power(2, -10 * amount) * sin((amount - period / 4) * pi * 2 / period) + 1;
- }
- else if (function == EasingFunction.ElasticEaseInOut)
- {
- var period = 0.3;
- amount *= 2;
- amount -= 1;
- if (amount < 0)
- return -0.5 * power(2, 10 * amount) * sin((amount - period / 4) * pi * 2 / period);
- return power(2, -10 * amount) * sin((amount - period / 4) * pi * 2 / period) * 0.5 + 1;
- }
- // Bounce
- else if (function == EasingFunction.BounceEaseIn)
- return 1 - sc_easing_bounce_amount(1 - amount);
- else if (function == EasingFunction.BounceEaseOut)
- return sc_easing_bounce_amount(amount);
- else if (function == EasingFunction.BounceEaseInOut)
- {
- if (amount < 0.5)
- {
- amount *= 2;
- return (1 - sc_easing_bounce_amount(1 - amount)) * 0.5;
- }
- return sc_easing_bounce_amount(amount * 2 - 1) * 0.5 + 0.5;
- }
Advertisement
Add Comment
Please, Sign In to add comment