Animatron.as

  1. /**
  2.  * Gestión centralizada de las animaciones
  3.  * de los menús y el contenedor
  4.  *
  5.  * http://livedocs.adobe.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00004155.html
  6.  *
  7.  * ProInf.net, 2008
  8.  * GNU General Public License: http://creativecommons.org/licenses/GPL/2.0/deed.es
  9.  *
  10.  */
  11.  
  12. import mx.transitions.*;
  13. import mx.transitions.easing.*;
  14.  
  15. class Animatron {
  16.  
  17. //////////////////////////////////////////////////
  18. // Interfaz estático
  19.  
  20. public static function visibilityMultibricks (clip:Clip, value:Boolean) {
  21. if (isAnimated()) {
  22. var mc:MovieClip = clip.getMovieClip();
  23. var tipo:Function = Regular.easeIn;
  24. var propiedad:String = "_alpha";
  25. var inicio:Number = mc[propiedad];
  26. var fin:Number = value?100:0;
  27. var tiempo:Number = 0.3;
  28. var segundos:Boolean = true;
  29.  
  30. if (value) mc._visible = true;
  31. var tween:Tween = new Tween(mc, propiedad, tipo, inicio, fin, tiempo, segundos);
  32. if (!value) tween.onMotionFinished = function() { mc._visible = false; };
  33. }
  34. else {
  35. clip.getMovieClip()._visible = value;
  36. }
  37. }
  38.  
  39. public static function showBrick (clip:Clip) {
  40. if (isAnimated()) {
  41. var mc:MovieClip = clip.getMovieClip();
  42. var propiedad:String = "_y";
  43. var tipo:Function = Strong.easeOut; //Regular.easeOut; //Bounce.easeOut; //Elastic.easeOut;
  44. var inicio:Number = 0;
  45. var fin:Number = clip.getY();
  46. var tiempo:Number = 0.8;
  47. var segundos:Boolean = true;
  48. new Tween(mc, propiedad, tipo, inicio, fin, tiempo, segundos);
  49. //new Tween(mc, "_yscale", tipo, 0, 100, tiempo, segundos);
  50.  
  51. }
  52. else {
  53. clip.getMovieClip()._y = clip.getY();
  54. }
  55. }
  56.  
  57.  
  58. public static function showMultibricks (clip:Clip) {
  59. /*if (isAnimated()) {
  60. var mc:MovieClip = clip.getMovieClip();
  61. var propiedad:String = "_alpha";
  62. var tipo:Function = Strong.easeOut; //Elastic.easeOut;
  63. var inicio:Number = 0;
  64. var fin:Number = 100;
  65. var tiempo:Number = 0.5;
  66. var segundos:Boolean = true;
  67.  
  68. var tween:Tween = new Tween(mc, propiedad, tipo, inicio, fin, tiempo, segundos);
  69. }
  70. else*/ {
  71. clip.getMovieClip()._xscale = 100;
  72. }
  73. }
  74.  
  75.  
  76. public static function hideBrick (clip:Clip) {
  77. if (isAnimated()) {
  78. var mc:MovieClip = clip.getMovieClip();
  79. var propiedad:String = "_y";
  80. var tipo:Function = Strong.easeIn; //Regular.easeOut; //Bounce.easeOut; //Elastic.easeOut;
  81. var inicio:Number = clip.getY();;
  82. var fin:Number = 0;
  83. var tiempo:Number = 0.3;
  84. var segundos:Boolean = true;
  85.  
  86. var tween:Tween = new Tween(mc, propiedad, tipo, inicio, fin, tiempo, segundos);
  87. tween.onMotionFinished = function() {
  88. tween.obj.removeMovieClip(); //Console.show("Finish: " + tween.obj);
  89. };
  90. }
  91. else {
  92. clip.getMovieClip().removeMovieClip();
  93. }
  94. }
  95.  
  96. public static function hideMultibricks (clip:Clip) {
  97. if (isAnimated()) {
  98. var mc:MovieClip = clip.getMovieClip();
  99. var propiedad:String = "_alpha";
  100. var tipo:Function = Strong.easeIn; //Regular.easeOut; //Bounce.easeOut; //Elastic.easeOut;
  101. var inicio:Number = 100;
  102. var fin:Number = 0;
  103. var tiempo:Number = 0.3;
  104. var segundos:Boolean = true;
  105.  
  106. var tween:Tween = new Tween(mc, propiedad, tipo, inicio, fin, tiempo, segundos);
  107. tween.onMotionFinished = function() {
  108. tween.obj.removeMovieClip();
  109. };
  110. }
  111. else {
  112. clip.getMovieClip().removeMovieClip();
  113. }
  114. }
  115.  
  116. public static function showContainerElement(mc:MovieClip, propiedad:String, fin:Number) {
  117. if (isAnimated()) {
  118. var tipo:Function = Regular.easeOut; //Regular.easeInOut;
  119. var inicio:Number = mc[propiedad];
  120. var tiempo:Number = 0.5;
  121. var segundos:Boolean = true;
  122. new Tween(mc, propiedad, tipo, inicio, fin, tiempo, segundos);
  123. }
  124. else {
  125. mc[propiedad] = fin;
  126. }
  127. }
  128.  
  129. public static function moveSelected(clip:Clip, finX:Number, finY:Number) {
  130. if (isAnimated()) {
  131. var mc:MovieClip = clip.getMovieClip();
  132. var propiedad:String = "_y";
  133. var tipo:Function = Regular.easeOut; // Strong.easeIn; //Regular.easeOut; //Bounce.easeOut; //Elastic.easeOut;
  134. var inicio:Number = mc[propiedad];
  135. var tiempo:Number = 0.12;
  136. var segundos:Boolean = true;
  137.  
  138. new Tween(mc, propiedad, tipo, inicio, finY, tiempo, segundos);
  139. }
  140. else {
  141. clip.getMovieClip()._y = finY;
  142. }
  143. }
  144.  
  145. //////////////////////////////////////////////////
  146. // Métodos genéricos
  147.  
  148. public static function anime(mc:MovieClip, propiedad:String, fin:Number) {
  149. if (isAnimated()) {
  150. var tipo:Function = Regular.easeInOut;
  151. var inicio:Number = mc[propiedad];
  152. var tiempo:Number = 0.5;
  153. var segundos:Boolean = true;
  154. new Tween(mc, propiedad, tipo, inicio, fin, tiempo, segundos);
  155. }
  156. else {
  157. mc[propiedad] = fin;
  158. }
  159. }
  160.  
  161. //////////////////////////////////////////////////
  162. // Métodos propios
  163.  
  164. private static function isAnimated():Boolean {
  165. return Profile.getInstance().isAnimated();
  166. }
  167. }

Proinf.net