home *** CD-ROM | disk | FTP | other *** search
/ Computer Active 2010 August / CA08.iso / Multimedija / shufflr.air / ShufflrClient.swf / scripts / caurina / transitions / Equations.as < prev    next >
Encoding:
Text File  |  2010-06-23  |  19.3 KB  |  434 lines

  1. package caurina.transitions
  2. {
  3.    public class Equations
  4.    {
  5.       public function Equations()
  6.       {
  7.          super();
  8.          trace("Equations is a static class and should not be instantiated.");
  9.       }
  10.       
  11.       public static function easeOutBounce(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  12.       {
  13.          param1 = param1 / param4;
  14.          if(param1 < 1 / 2.75)
  15.          {
  16.             return param3 * (7.5625 * param1 * param1) + param2;
  17.          }
  18.          if(param1 < 2 / 2.75)
  19.          {
  20.             return param3 * (7.5625 * (param1 = param1 - 1.5 / 2.75) * param1 + 0.75) + param2;
  21.          }
  22.          if(param1 < 2.5 / 2.75)
  23.          {
  24.             return param3 * (7.5625 * (param1 = param1 - 2.25 / 2.75) * param1 + 0.9375) + param2;
  25.          }
  26.          return param3 * (7.5625 * (param1 = param1 - 2.625 / 2.75) * param1 + 0.984375) + param2;
  27.       }
  28.       
  29.       public static function easeInOutElastic(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  30.       {
  31.          var _loc7_:Number = NaN;
  32.          if(param1 == 0)
  33.          {
  34.             return param2;
  35.          }
  36.          param1 = param1 / (param4 / 2);
  37.          if(param1 == 2)
  38.          {
  39.             return param2 + param3;
  40.          }
  41.          var _loc6_:Number = !Boolean(param5) || isNaN(param5.period) ? param4 * (0.3 * 1.5) : Number(param5.period);
  42.          var _loc8_:Number = !Boolean(param5) || isNaN(param5.amplitude) ? 0 : Number(param5.amplitude);
  43.          if(!Boolean(_loc8_) || _loc8_ < Math.abs(param3))
  44.          {
  45.             _loc8_ = param3;
  46.             _loc7_ = _loc6_ / 4;
  47.          }
  48.          else
  49.          {
  50.             _loc7_ = _loc6_ / (2 * Math.PI) * Math.asin(param3 / _loc8_);
  51.          }
  52.          if(param1 < 1)
  53.          {
  54.             return -0.5 * (_loc8_ * Math.pow(2,10 * (param1 = param1 - 1)) * Math.sin((param1 * param4 - _loc7_) * (2 * Math.PI) / _loc6_)) + param2;
  55.          }
  56.          return _loc8_ * Math.pow(2,-10 * (param1 = param1 - 1)) * Math.sin((param1 * param4 - _loc7_) * (2 * Math.PI) / _loc6_) * 0.5 + param3 + param2;
  57.       }
  58.       
  59.       public static function easeInOutQuad(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  60.       {
  61.          param1 = param1 / (param4 / 2);
  62.          if(param1 < 1)
  63.          {
  64.             return param3 / 2 * param1 * param1 + param2;
  65.          }
  66.          return -param3 / 2 * (--param1 * (param1 - 2) - 1) + param2;
  67.       }
  68.       
  69.       public static function easeInOutBounce(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  70.       {
  71.          if(param1 < param4 / 2)
  72.          {
  73.             return easeInBounce(param1 * 2,0,param3,param4) * 0.5 + param2;
  74.          }
  75.          return easeOutBounce(param1 * 2 - param4,0,param3,param4) * 0.5 + param3 * 0.5 + param2;
  76.       }
  77.       
  78.       public static function easeInOutBack(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  79.       {
  80.          var _loc6_:Number = !Boolean(param5) || isNaN(param5.overshoot) ? 1.70158 : Number(param5.overshoot);
  81.          param1 = param1 / (param4 / 2);
  82.          if(param1 < 1)
  83.          {
  84.             return param3 / 2 * (param1 * param1 * (((_loc6_ = _loc6_ * 1.525) + 1) * param1 - _loc6_)) + param2;
  85.          }
  86.          return param3 / 2 * ((param1 = param1 - 2) * param1 * (((_loc6_ = _loc6_ * 1.525) + 1) * param1 + _loc6_) + 2) + param2;
  87.       }
  88.       
  89.       public static function easeOutInCubic(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  90.       {
  91.          if(param1 < param4 / 2)
  92.          {
  93.             return easeOutCubic(param1 * 2,param2,param3 / 2,param4,param5);
  94.          }
  95.          return easeInCubic(param1 * 2 - param4,param2 + param3 / 2,param3 / 2,param4,param5);
  96.       }
  97.       
  98.       public static function easeNone(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  99.       {
  100.          return param3 * param1 / param4 + param2;
  101.       }
  102.       
  103.       public static function easeOutBack(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  104.       {
  105.          var _loc6_:Number = !Boolean(param5) || isNaN(param5.overshoot) ? 1.70158 : Number(param5.overshoot);
  106.          return param3 * ((param1 = param1 / param4 - 1) * param1 * ((_loc6_ + 1) * param1 + _loc6_) + 1) + param2;
  107.       }
  108.       
  109.       public static function easeInOutSine(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  110.       {
  111.          return -param3 / 2 * (Math.cos(Math.PI * param1 / param4) - 1) + param2;
  112.       }
  113.       
  114.       public static function easeInBack(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  115.       {
  116.          var _loc6_:Number = !Boolean(param5) || isNaN(param5.overshoot) ? 1.70158 : Number(param5.overshoot);
  117.          return param3 * (param1 = param1 / param4) * param1 * ((_loc6_ + 1) * param1 - _loc6_) + param2;
  118.       }
  119.       
  120.       public static function easeInQuart(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  121.       {
  122.          return param3 * (param1 = param1 / param4) * param1 * param1 * param1 + param2;
  123.       }
  124.       
  125.       public static function easeOutInQuint(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  126.       {
  127.          if(param1 < param4 / 2)
  128.          {
  129.             return easeOutQuint(param1 * 2,param2,param3 / 2,param4,param5);
  130.          }
  131.          return easeInQuint(param1 * 2 - param4,param2 + param3 / 2,param3 / 2,param4,param5);
  132.       }
  133.       
  134.       public static function easeOutInBounce(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  135.       {
  136.          if(param1 < param4 / 2)
  137.          {
  138.             return easeOutBounce(param1 * 2,param2,param3 / 2,param4,param5);
  139.          }
  140.          return easeInBounce(param1 * 2 - param4,param2 + param3 / 2,param3 / 2,param4,param5);
  141.       }
  142.       
  143.       public static function init() : void
  144.       {
  145.          Tweener.registerTransition("easenone",easeNone);
  146.          Tweener.registerTransition("linear",easeNone);
  147.          Tweener.registerTransition("easeinquad",easeInQuad);
  148.          Tweener.registerTransition("easeoutquad",easeOutQuad);
  149.          Tweener.registerTransition("easeinoutquad",easeInOutQuad);
  150.          Tweener.registerTransition("easeoutinquad",easeOutInQuad);
  151.          Tweener.registerTransition("easeincubic",easeInCubic);
  152.          Tweener.registerTransition("easeoutcubic",easeOutCubic);
  153.          Tweener.registerTransition("easeinoutcubic",easeInOutCubic);
  154.          Tweener.registerTransition("easeoutincubic",easeOutInCubic);
  155.          Tweener.registerTransition("easeinquart",easeInQuart);
  156.          Tweener.registerTransition("easeoutquart",easeOutQuart);
  157.          Tweener.registerTransition("easeinoutquart",easeInOutQuart);
  158.          Tweener.registerTransition("easeoutinquart",easeOutInQuart);
  159.          Tweener.registerTransition("easeinquint",easeInQuint);
  160.          Tweener.registerTransition("easeoutquint",easeOutQuint);
  161.          Tweener.registerTransition("easeinoutquint",easeInOutQuint);
  162.          Tweener.registerTransition("easeoutinquint",easeOutInQuint);
  163.          Tweener.registerTransition("easeinsine",easeInSine);
  164.          Tweener.registerTransition("easeoutsine",easeOutSine);
  165.          Tweener.registerTransition("easeinoutsine",easeInOutSine);
  166.          Tweener.registerTransition("easeoutinsine",easeOutInSine);
  167.          Tweener.registerTransition("easeincirc",easeInCirc);
  168.          Tweener.registerTransition("easeoutcirc",easeOutCirc);
  169.          Tweener.registerTransition("easeinoutcirc",easeInOutCirc);
  170.          Tweener.registerTransition("easeoutincirc",easeOutInCirc);
  171.          Tweener.registerTransition("easeinexpo",easeInExpo);
  172.          Tweener.registerTransition("easeoutexpo",easeOutExpo);
  173.          Tweener.registerTransition("easeinoutexpo",easeInOutExpo);
  174.          Tweener.registerTransition("easeoutinexpo",easeOutInExpo);
  175.          Tweener.registerTransition("easeinelastic",easeInElastic);
  176.          Tweener.registerTransition("easeoutelastic",easeOutElastic);
  177.          Tweener.registerTransition("easeinoutelastic",easeInOutElastic);
  178.          Tweener.registerTransition("easeoutinelastic",easeOutInElastic);
  179.          Tweener.registerTransition("easeinback",easeInBack);
  180.          Tweener.registerTransition("easeoutback",easeOutBack);
  181.          Tweener.registerTransition("easeinoutback",easeInOutBack);
  182.          Tweener.registerTransition("easeoutinback",easeOutInBack);
  183.          Tweener.registerTransition("easeinbounce",easeInBounce);
  184.          Tweener.registerTransition("easeoutbounce",easeOutBounce);
  185.          Tweener.registerTransition("easeinoutbounce",easeInOutBounce);
  186.          Tweener.registerTransition("easeoutinbounce",easeOutInBounce);
  187.       }
  188.       
  189.       public static function easeOutExpo(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  190.       {
  191.          return param1 == param4 ? param2 + param3 : param3 * 1.001 * (-Math.pow(2,-10 * param1 / param4) + 1) + param2;
  192.       }
  193.       
  194.       public static function easeOutInBack(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  195.       {
  196.          if(param1 < param4 / 2)
  197.          {
  198.             return easeOutBack(param1 * 2,param2,param3 / 2,param4,param5);
  199.          }
  200.          return easeInBack(param1 * 2 - param4,param2 + param3 / 2,param3 / 2,param4,param5);
  201.       }
  202.       
  203.       public static function easeInExpo(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  204.       {
  205.          return param1 == 0 ? param2 : param3 * Math.pow(2,10 * (param1 / param4 - 1)) + param2 - param3 * 0.001;
  206.       }
  207.       
  208.       public static function easeInCubic(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  209.       {
  210.          return param3 * (param1 = param1 / param4) * param1 * param1 + param2;
  211.       }
  212.       
  213.       public static function easeInQuint(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  214.       {
  215.          return param3 * (param1 = param1 / param4) * param1 * param1 * param1 * param1 + param2;
  216.       }
  217.       
  218.       public static function easeInOutCirc(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  219.       {
  220.          param1 = param1 / (param4 / 2);
  221.          if(param1 < 1)
  222.          {
  223.             return -param3 / 2 * (Math.sqrt(1 - param1 * param1) - 1) + param2;
  224.          }
  225.          return param3 / 2 * (Math.sqrt(1 - (param1 = param1 - 2) * param1) + 1) + param2;
  226.       }
  227.       
  228.       public static function easeInQuad(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  229.       {
  230.          return param3 * (param1 = param1 / param4) * param1 + param2;
  231.       }
  232.       
  233.       public static function easeInBounce(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  234.       {
  235.          return param3 - easeOutBounce(param4 - param1,0,param3,param4) + param2;
  236.       }
  237.       
  238.       public static function easeOutInExpo(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  239.       {
  240.          if(param1 < param4 / 2)
  241.          {
  242.             return easeOutExpo(param1 * 2,param2,param3 / 2,param4,param5);
  243.          }
  244.          return easeInExpo(param1 * 2 - param4,param2 + param3 / 2,param3 / 2,param4,param5);
  245.       }
  246.       
  247.       public static function easeOutQuart(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  248.       {
  249.          return -param3 * ((param1 = param1 / param4 - 1) * param1 * param1 * param1 - 1) + param2;
  250.       }
  251.       
  252.       public static function easeInSine(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  253.       {
  254.          return -param3 * Math.cos(param1 / param4 * (Math.PI / 2)) + param3 + param2;
  255.       }
  256.       
  257.       public static function easeInOutQuart(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  258.       {
  259.          param1 = param1 / (param4 / 2);
  260.          if(param1 < 1)
  261.          {
  262.             return param3 / 2 * param1 * param1 * param1 * param1 + param2;
  263.          }
  264.          return -param3 / 2 * ((param1 = param1 - 2) * param1 * param1 * param1 - 2) + param2;
  265.       }
  266.       
  267.       public static function easeOutQuad(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  268.       {
  269.          return -param3 * (param1 = param1 / param4) * (param1 - 2) + param2;
  270.       }
  271.       
  272.       public static function easeOutInElastic(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  273.       {
  274.          if(param1 < param4 / 2)
  275.          {
  276.             return easeOutElastic(param1 * 2,param2,param3 / 2,param4,param5);
  277.          }
  278.          return easeInElastic(param1 * 2 - param4,param2 + param3 / 2,param3 / 2,param4,param5);
  279.       }
  280.       
  281.       public static function easeInElastic(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  282.       {
  283.          var _loc7_:Number = NaN;
  284.          if(param1 == 0)
  285.          {
  286.             return param2;
  287.          }
  288.          param1 = param1 / param4;
  289.          if(param1 == 1)
  290.          {
  291.             return param2 + param3;
  292.          }
  293.          var _loc6_:Number = !Boolean(param5) || isNaN(param5.period) ? param4 * 0.3 : Number(param5.period);
  294.          var _loc8_:Number = !Boolean(param5) || isNaN(param5.amplitude) ? 0 : Number(param5.amplitude);
  295.          if(!Boolean(_loc8_) || _loc8_ < Math.abs(param3))
  296.          {
  297.             _loc8_ = param3;
  298.             _loc7_ = _loc6_ / 4;
  299.          }
  300.          else
  301.          {
  302.             _loc7_ = _loc6_ / (2 * Math.PI) * Math.asin(param3 / _loc8_);
  303.          }
  304.          return -(_loc8_ * Math.pow(2,10 * (param1 = param1 - 1)) * Math.sin((param1 * param4 - _loc7_) * (2 * Math.PI) / _loc6_)) + param2;
  305.       }
  306.       
  307.       public static function easeOutCubic(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  308.       {
  309.          return param3 * ((param1 = param1 / param4 - 1) * param1 * param1 + 1) + param2;
  310.       }
  311.       
  312.       public static function easeOutQuint(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  313.       {
  314.          return param3 * ((param1 = param1 / param4 - 1) * param1 * param1 * param1 * param1 + 1) + param2;
  315.       }
  316.       
  317.       public static function easeOutInQuad(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  318.       {
  319.          if(param1 < param4 / 2)
  320.          {
  321.             return easeOutQuad(param1 * 2,param2,param3 / 2,param4,param5);
  322.          }
  323.          return easeInQuad(param1 * 2 - param4,param2 + param3 / 2,param3 / 2,param4,param5);
  324.       }
  325.       
  326.       public static function easeOutSine(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  327.       {
  328.          return param3 * Math.sin(param1 / param4 * (Math.PI / 2)) + param2;
  329.       }
  330.       
  331.       public static function easeInOutCubic(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  332.       {
  333.          param1 = param1 / (param4 / 2);
  334.          if(param1 < 1)
  335.          {
  336.             return param3 / 2 * param1 * param1 * param1 + param2;
  337.          }
  338.          return param3 / 2 * ((param1 = param1 - 2) * param1 * param1 + 2) + param2;
  339.       }
  340.       
  341.       public static function easeInOutQuint(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  342.       {
  343.          param1 = param1 / (param4 / 2);
  344.          if(param1 < 1)
  345.          {
  346.             return param3 / 2 * param1 * param1 * param1 * param1 * param1 + param2;
  347.          }
  348.          return param3 / 2 * ((param1 = param1 - 2) * param1 * param1 * param1 * param1 + 2) + param2;
  349.       }
  350.       
  351.       public static function easeInCirc(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  352.       {
  353.          return -param3 * (Math.sqrt(1 - (param1 = param1 / param4) * param1) - 1) + param2;
  354.       }
  355.       
  356.       public static function easeOutInSine(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  357.       {
  358.          if(param1 < param4 / 2)
  359.          {
  360.             return easeOutSine(param1 * 2,param2,param3 / 2,param4,param5);
  361.          }
  362.          return easeInSine(param1 * 2 - param4,param2 + param3 / 2,param3 / 2,param4,param5);
  363.       }
  364.       
  365.       public static function easeInOutExpo(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  366.       {
  367.          if(param1 == 0)
  368.          {
  369.             return param2;
  370.          }
  371.          if(param1 == param4)
  372.          {
  373.             return param2 + param3;
  374.          }
  375.          param1 = param1 / (param4 / 2);
  376.          if(param1 < 1)
  377.          {
  378.             return param3 / 2 * Math.pow(2,10 * (param1 - 1)) + param2 - param3 * 0.0005;
  379.          }
  380.          return param3 / 2 * 1.0005 * (-Math.pow(2,-10 * --param1) + 2) + param2;
  381.       }
  382.       
  383.       public static function easeOutElastic(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  384.       {
  385.          var _loc7_:Number = NaN;
  386.          if(param1 == 0)
  387.          {
  388.             return param2;
  389.          }
  390.          param1 = param1 / param4;
  391.          if(param1 == 1)
  392.          {
  393.             return param2 + param3;
  394.          }
  395.          var _loc6_:Number = !Boolean(param5) || isNaN(param5.period) ? param4 * 0.3 : Number(param5.period);
  396.          var _loc8_:Number = !Boolean(param5) || isNaN(param5.amplitude) ? 0 : Number(param5.amplitude);
  397.          if(!Boolean(_loc8_) || _loc8_ < Math.abs(param3))
  398.          {
  399.             _loc8_ = param3;
  400.             _loc7_ = _loc6_ / 4;
  401.          }
  402.          else
  403.          {
  404.             _loc7_ = _loc6_ / (2 * Math.PI) * Math.asin(param3 / _loc8_);
  405.          }
  406.          return _loc8_ * Math.pow(2,-10 * param1) * Math.sin((param1 * param4 - _loc7_) * (2 * Math.PI) / _loc6_) + param3 + param2;
  407.       }
  408.       
  409.       public static function easeOutCirc(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  410.       {
  411.          return param3 * Math.sqrt(1 - (param1 = param1 / param4 - 1) * param1) + param2;
  412.       }
  413.       
  414.       public static function easeOutInQuart(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  415.       {
  416.          if(param1 < param4 / 2)
  417.          {
  418.             return easeOutQuart(param1 * 2,param2,param3 / 2,param4,param5);
  419.          }
  420.          return easeInQuart(param1 * 2 - param4,param2 + param3 / 2,param3 / 2,param4,param5);
  421.       }
  422.       
  423.       public static function easeOutInCirc(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null) : Number
  424.       {
  425.          if(param1 < param4 / 2)
  426.          {
  427.             return easeOutCirc(param1 * 2,param2,param3 / 2,param4,param5);
  428.          }
  429.          return easeInCirc(param1 * 2 - param4,param2 + param3 / 2,param3 / 2,param4,param5);
  430.       }
  431.    }
  432. }
  433.  
  434.