1 | function ease_in_elastic(arg0, arg1, arg2, arg3) |
2 | { |
3 | var _s = 1.70158; |
4 | var _p = 0; |
5 | var _a = arg2; |
6 | if (arg0 == 0 || _a == 0) |
7 | return arg1; |
8 | arg0 /= arg3; |
9 | if (arg0 == 1) |
10 | return arg1 + arg2; |
11 | if (_p == 0) |
12 | _p = arg3 * 0.3; |
13 | if (_a < abs(arg2)) |
14 | { |
15 | _a = arg2; |
16 | _s = _p * 0.25; |
17 | } |
18 | else |
19 | { |
20 | _s = (_p / (2 * pi)) * arcsin(arg2 / _a); |
21 | } |
22 | return -(_a * power(2, 10 * --arg0) * sin((((arg0 * arg3) - _s) * (2 * pi)) / _p)) + arg1; |
23 | } |