Guest User

Untitled

a guest
Aug 25th, 2015
289
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ///sc_easing(amount, easingFunction)
  2.  
  3. enum EasingFunction { Linear,
  4.                       SineEaseIn,
  5.                       SineEaseOut,
  6.                       SineEaseInOut,
  7.                       QuadEaseIn,
  8.                       QuadEaseOut,
  9.                       QuadEaseInOut,
  10.                       CubicEaseIn,
  11.                       CubicEaseOut,
  12.                       CubicEaseInOut,
  13.                       QuartEaseIn,
  14.                       QuartEaseOut,
  15.                       QuartEaseInOut,
  16.                       QuintEaseIn,
  17.                       QuintEaseOut,
  18.                       QuintEaseInOut,
  19.                       ExpoEaseIn,
  20.                       ExpoEaseOut,
  21.                       ExpoEaseInOut,
  22.                       CircEaseIn,
  23.                       CircEaseOut,
  24.                       CircEaseInOut,
  25.                       BackEaseIn,
  26.                       BackEaseOut,
  27.                       BackEaseInOut,
  28.                       ElasticEaseIn,
  29.                       ElasticEaseOut,
  30.                       ElasticEaseInOut,
  31.                       BounceEaseIn,
  32.                       BounceEaseOut,
  33.                       BounceEaseInOut }
  34.  
  35. if (argument0 <= 0)
  36.   return 0;
  37. else if (argument0 >= 1)
  38.   return 1;
  39.  
  40. var amount = argument0;
  41. var function = argument1;
  42.  
  43. // Linear
  44. if (function == EasingFunction.Linear)
  45. {
  46.   return amount;
  47. }
  48.  
  49. // Sine
  50. else if (function == EasingFunction.SineEaseIn)
  51. {
  52.   amount /= 2;
  53.   return -1 * cos(amount * pi) + 1;
  54. }
  55. else if (function == EasingFunction.SineEaseOut)
  56. {
  57.   amount /= 4;
  58.   return sin(amount * pi * 2);
  59. }
  60. else if (function == EasingFunction.SineEaseInOut)
  61.   return -0.5 * (cos(amount * pi) - 1);
  62.  
  63. // Quad
  64. else if (function == EasingFunction.QuadEaseIn)
  65.   return amount * amount;
  66. else if (function == EasingFunction.QuadEaseOut)
  67.   return -1 * amount * (amount - 2);
  68. else if (function == EasingFunction.QuadEaseInOut)
  69. {
  70.   amount *= 2;
  71.  
  72.   if (amount < 1)
  73.     return 0.5 * amount * amount;
  74.  
  75.   amount--;
  76.  
  77.   return -0.5 * (amount * (amount - 2) - 1);
  78. }
  79.  
  80. // Cubic
  81. else if (function == EasingFunction.CubicEaseIn)
  82.   return amount * amount * amount;
  83. else if (function == EasingFunction.CubicEaseOut)
  84. {
  85.   amount -= 1;
  86.  
  87.   return amount * amount * amount + 1;
  88. }
  89. else if (function == EasingFunction.CubicEaseInOut)
  90. {
  91.   amount *= 2;
  92.  
  93.   if (amount < 1)
  94.     return 0.5 * amount * amount * amount;
  95.  
  96.   amount -= 2;
  97.  
  98.   return 0.5 * (amount * amount * amount + 2);
  99. }
  100.  
  101. // Quart
  102. else if (function == EasingFunction.QuartEaseIn)
  103.   return amount * amount * amount * amount;
  104. else if (function == EasingFunction.QuartEaseOut)
  105. {
  106.   amount -= 1;
  107.  
  108.   return -(amount * amount * amount * amount - 1);
  109. }
  110. else if (function == EasingFunction.QuartEaseInOut)
  111. {
  112.   amount *= 2;
  113.  
  114.   if (amount < 1)
  115.     return 0.5 * amount * amount * amount * amount;
  116.  
  117.   amount -= 2;
  118.  
  119.   return -0.5 * (amount * amount * amount * amount - 2);
  120. }
  121.  
  122. // Quint
  123. else if (function == EasingFunction.QuintEaseIn)
  124.   return amount * amount * amount * amount * amount;
  125. else if (function == EasingFunction.QuintEaseOut)
  126. {
  127.   amount -= 1;
  128.  
  129.   return amount * amount * amount * amount * amount + 1;
  130. }
  131. else if (function == EasingFunction.QuintEaseInOut)
  132. {
  133.   amount *= 2;
  134.  
  135.   if (amount < 1)
  136.     return 0.5 * amount * amount * amount * amount * amount;
  137.  
  138.   amount -= 2;
  139.  
  140.   return 0.5 * (amount * amount * amount * amount * amount + 2);
  141. }
  142.  
  143. // Expo
  144. else if (function == EasingFunction.ExpoEaseIn)
  145.   return power(2, 10 * (amount - 1));
  146. else if (function == EasingFunction.ExpoEaseOut)
  147.   return -power(2, -10 * amount) + 1;
  148. else if (function == EasingFunction.ExpoEaseInOut)
  149. {
  150.   amount *= 2;
  151.  
  152.   if (amount < 1)
  153.     return 0.5 * power(2, 10 * (amount - 1));
  154.  
  155.   return 0.5 * (-power(2, -10 * (amount - 1)) + 2);
  156. }
  157.  
  158. // Circ
  159. else if (function == EasingFunction.CircEaseIn)
  160.   return -1 * (sqrt(1 - amount * amount) - 1);
  161. else if (function == EasingFunction.CircEaseOut)
  162. {
  163.   amount -= 1;
  164.  
  165.   return sqrt(1 - amount * amount);
  166. }
  167. else if (function == EasingFunction.CircEaseInOut)
  168. {
  169.   amount *= 2;
  170.  
  171.   if (amount < 1)
  172.     return -0.5 * (sqrt(1 - amount * amount) - 1);
  173.  
  174.   amount -= 2;
  175.  
  176.   return 0.5 * (sqrt(1 - amount * amount) + 1);
  177. }
  178.  
  179. // Back
  180. else if (function == EasingFunction.BackEaseIn)
  181. {
  182.   var overshoot = 1.70158;
  183.  
  184.   return amount * amount * ((overshoot + 1) * amount - overshoot);
  185. }
  186. else if (function == EasingFunction.BackEaseOut)
  187. {
  188.   var overshoot = 1.70158;
  189.  
  190.   amount -= 1;
  191.  
  192.   return amount * amount * ((overshoot + 1) * amount + overshoot) + 1;
  193. }
  194. else if (function == EasingFunction.BackEaseInOut)
  195. {
  196.   var overshoot = 2.5949095;
  197.  
  198.   amount *= 2;
  199.  
  200.   if (amount < 1)
  201.     return (amount * amount * ((overshoot + 1) * amount - overshoot)) / 2;
  202.  
  203.   amount -= 2;
  204.  
  205.   return (amount * amount * ((overshoot + 1) * amount + overshoot)) / 2 + 1;
  206. }
  207.  
  208. // Elastic
  209. else if (function == EasingFunction.ElasticEaseIn)
  210. {
  211.   var period = 0.3;
  212.  
  213.   amount -= 1;
  214.  
  215.   return -power(2, 10 * amount) * sin((amount - period / 4) * pi * 2 / period);
  216. }
  217. else if (function == EasingFunction.ElasticEaseOut)
  218. {
  219.   var period = 0.3;
  220.  
  221.   return power(2, -10 * amount) * sin((amount - period / 4) * pi * 2 / period) + 1;
  222. }
  223. else if (function == EasingFunction.ElasticEaseInOut)
  224. {
  225.   var period = 0.3;
  226.  
  227.   amount *= 2;
  228.   amount -= 1;
  229.  
  230.   if (amount < 0)
  231.     return -0.5 * power(2, 10 * amount) * sin((amount - period / 4) * pi * 2 / period);
  232.  
  233.   return power(2, -10 * amount) * sin((amount - period / 4) * pi * 2 / period) * 0.5 + 1;
  234. }
  235.  
  236. // Bounce
  237. else if (function == EasingFunction.BounceEaseIn)
  238.   return 1 - sc_easing_bounce_amount(1 - amount);
  239. else if (function == EasingFunction.BounceEaseOut)
  240.   return sc_easing_bounce_amount(amount);
  241. else if (function == EasingFunction.BounceEaseInOut)
  242. {
  243.   if (amount < 0.5)
  244.   {
  245.     amount *= 2;
  246.  
  247.     return (1 - sc_easing_bounce_amount(1 - amount)) * 0.5;
  248.   }
  249.  
  250.   return sc_easing_bounce_amount(amount * 2 - 1) * 0.5 + 0.5;
  251. }
Advertisement
Add Comment
Please, Sign In to add comment