/assets/05_Prius_PuzzleExpandable/Production/src/com/socialvibe/core/ui/SVSquareLoader.as

https://github.com/socialvibe/engagements_FLAs · ActionScript · 235 lines · 154 code · 43 blank · 38 comment · 6 complexity · 4d63a6c654c68fb48c37c45e37080909 MD5 · raw file

  1. package com.socialvibe.core.ui
  2. {
  3. import flash.display.Graphics;
  4. import flash.display.Sprite;
  5. import flash.utils.setTimeout;
  6. import com.socialvibe.core.ui.controls.SVText;
  7. import com.greensock.TimelineLite;
  8. import com.greensock.TweenLite;
  9. import com.greensock.plugins.*;
  10. public class SVSquareLoader extends Sprite
  11. {
  12. private var _box1:Sprite;
  13. private var _box2:Sprite;
  14. private var _box3:Sprite;
  15. private var _box4:Sprite;
  16. private var _box5:Sprite;
  17. private var _box6:Sprite;
  18. private var _box7:Sprite;
  19. private var _box8:Sprite;
  20. private var _box9:Sprite;
  21. private var _loadingText:SVText;
  22. private var _boxTimeline:TimelineLite;
  23. private var _textTimeline:TimelineLite;
  24. public function SVSquareLoader(big:Boolean = true, text:String = null)
  25. {
  26. //TimelineLite
  27. _box1 = new Sprite();
  28. var g:Graphics = _box1.graphics;
  29. g.beginFill(0xFFFFFF, 1);
  30. g.drawRoundRectComplex(0,0,8,8,6,1,1,1);
  31. g.endFill();
  32. this.addChild(_box1);
  33. _box2 = new Sprite();
  34. g = _box2.graphics;
  35. g.beginFill(0xFFFFFF, 1);
  36. g.drawRoundRectComplex(11,0,8,8,1,1,1,1);
  37. g.endFill();
  38. this.addChild(_box2);
  39. _box3 = new Sprite();
  40. g = _box3.graphics;
  41. g.beginFill(0xFFFFFF, 1);
  42. g.drawRoundRectComplex(22,0,8,8,1,6,1,1);
  43. g.endFill();
  44. this.addChild(_box3);
  45. _box4 = new Sprite();
  46. g = _box4.graphics;
  47. g.beginFill(0xFFFFFF, 1);
  48. g.drawRoundRectComplex(0,11,8,8,1,1,1,1);
  49. g.endFill();
  50. this.addChild(_box4);
  51. _box5 = new Sprite();
  52. g = _box5.graphics;
  53. g.beginFill(0xFFFFFF, 1);
  54. g.drawRoundRectComplex(11,11,8,8,1,1,1,1);
  55. g.endFill();
  56. this.addChild(_box5);
  57. _box6 = new Sprite();
  58. g = _box6.graphics;
  59. g.beginFill(0xFFFFFF, 1);
  60. g.drawRoundRectComplex(22,11,8,8,1,1,1,1);
  61. g.endFill();
  62. this.addChild(_box6);
  63. _box7 = new Sprite();
  64. g = _box7.graphics;
  65. g.beginFill(0xFFFFFF, 1);
  66. g.drawRoundRectComplex(0,22,8,8,1,1,6,1);
  67. g.endFill();
  68. this.addChild(_box7);
  69. _box8 = new Sprite();
  70. g = _box8.graphics;
  71. g.beginFill(0xFFFFFF, 1);
  72. g.drawRoundRectComplex(11,22,8,8,1,1,1,1);
  73. g.endFill();
  74. this.addChild(_box8);
  75. _box9 = new Sprite();
  76. g = _box9.graphics;
  77. g.beginFill(0xFFFFFF, 1);
  78. g.drawRoundRectComplex(22,22,8,8,1,1,1,6);
  79. g.endFill();
  80. this.addChild(_box9);
  81. if (text){
  82. _loadingText = new SVText(text, 0, 0, 13, false);
  83. _loadingText.x = (30 - _loadingText.width)/2;
  84. _loadingText.y = 30 + 2;
  85. this.addChild(_loadingText);
  86. }
  87. scaleX = scaleY = (big ? 1.5 : 1);
  88. _boxTimeline = new TimelineLite();
  89. _textTimeline = new TimelineLite();
  90. //_timeline.addEventListener(TweenEvent.COMPLETE, restart, false, 0, true);
  91. TweenPlugin.activate([TintPlugin, RemoveTintPlugin]);
  92. setupAnimation();
  93. }
  94. private function setupAnimation():void
  95. {
  96. //As soon we update to v11 use this.
  97. /*_timeline.insert(new TweenLite(_box1, 3, {tint:0xC2C3C4, useFrames:true}));
  98. _timeline.append(new TweenLite(_box1, 1, {removeTint:true, useFrames:true}));
  99. _timeline.append(new TweenLite(_box2, 3, {tint:0xC2C3C4, useFrames:true}));
  100. _timeline.append(new TweenLite(_box2, 1, {removeTint:true, useFrames:true}));
  101. _timeline.append(new TweenLite(_box3, 3, {tint:0xC2C3C4, useFrames:true}));
  102. _timeline.append(new TweenLite(_box3, 1, {removeTint:true, useFrames:true}));
  103. _timeline.append(new TweenLite(_box6, 3, {tint:0xC2C3C4, useFrames:true}));
  104. _timeline.append(new TweenLite(_box6, 1, {removeTint:true, useFrames:true}));
  105. _timeline.append(new TweenLite(_box5, 3, {tint:0xC2C3C4, useFrames:true}));
  106. _timeline.append(new TweenLite(_box5, 1, {removeTint:true, useFrames:true}));
  107. _timeline.append(new TweenLite(_box4, 3, {tint:0xC2C3C4, useFrames:true}));
  108. _timeline.append(new TweenLite(_box4, 1, {removeTint:true, useFrames:true}));
  109. _timeline.append(new TweenLite(_box7, 3, {tint:0xC2C3C4, useFrames:true}));
  110. _timeline.append(new TweenLite(_box7, 1, {removeTint:true, useFrames:true}));
  111. _timeline.append(new TweenLite(_box8, 3, {tint:0xC2C3C4, useFrames:true}));
  112. _timeline.append(new TweenLite(_box8, 1, {removeTint:true, useFrames:true}));
  113. _timeline.append(new TweenLite(_box9, 3, {tint:0xC2C3C4, useFrames:true}));
  114. _timeline.append(new TweenLite(_box9, 1, {removeTint:true, useFrames:true }));
  115. _timeline.append(new TweenLite(_box6, 3, {tint:0xC2C3C4, useFrames:true}));
  116. _timeline.append(new TweenLite(_box6, 1, {removeTint:true, useFrames:true}));
  117. _timeline.append(new TweenLite(_box5, 3, {tint:0xC2C3C4, useFrames:true}));
  118. _timeline.append(new TweenLite(_box5, 1, {removeTint:true, useFrames:true}));
  119. _timeline.append(new TweenLite(_box4, 3, {tint:0xC2C3C4, useFrames:true}));
  120. _timeline.append(new TweenLite(_box4, 1, {removeTint:true, useFrames:true, onComplete:restart}));*/
  121. _boxTimeline.insert(new TweenLite(_box1, .1, {tint:0xC2C3C4, useFrames:true}));
  122. _boxTimeline.append(new TweenLite(_box1, .1, {removeTint:true, useFrames:true}));
  123. _boxTimeline.append(new TweenLite(_box2, .1, {tint:0xC2C3C4, useFrames:true}));
  124. _boxTimeline.append(new TweenLite(_box2, .1, {removeTint:true, useFrames:true}));
  125. _boxTimeline.append(new TweenLite(_box3, .1, {tint:0xC2C3C4, useFrames:true}));
  126. _boxTimeline.append(new TweenLite(_box3, .1, {removeTint:true, useFrames:true}));
  127. _boxTimeline.append(new TweenLite(_box6, .1, {tint:0xC2C3C4, useFrames:true}));
  128. _boxTimeline.append(new TweenLite(_box6, .1, {removeTint:true, useFrames:true}));
  129. _boxTimeline.append(new TweenLite(_box5, .1, {tint:0xC2C3C4, useFrames:true}));
  130. _boxTimeline.append(new TweenLite(_box5, .1, {removeTint:true, useFrames:true}));
  131. _boxTimeline.append(new TweenLite(_box4, .1, {tint:0xC2C3C4, useFrames:true}));
  132. _boxTimeline.append(new TweenLite(_box4, .1, {removeTint:true, useFrames:true}));
  133. _boxTimeline.append(new TweenLite(_box7, .1, {tint:0xC2C3C4, useFrames:true}));
  134. _boxTimeline.append(new TweenLite(_box7, .1, {removeTint:true, useFrames:true}));
  135. _boxTimeline.append(new TweenLite(_box8, .1, {tint:0xC2C3C4, useFrames:true}));
  136. _boxTimeline.append(new TweenLite(_box8, .1, {removeTint:true, useFrames:true}));
  137. _boxTimeline.append(new TweenLite(_box9, .1, {tint:0xC2C3C4, useFrames:true}));
  138. _boxTimeline.append(new TweenLite(_box9, .1, {removeTint:true, useFrames:true }));
  139. _boxTimeline.append(new TweenLite(_box6, .1, {tint:0xC2C3C4, useFrames:true}));
  140. _boxTimeline.append(new TweenLite(_box6, .1, {removeTint:true, useFrames:true}));
  141. _boxTimeline.append(new TweenLite(_box5, .1, {tint:0xC2C3C4, useFrames:true}));
  142. _boxTimeline.append(new TweenLite(_box5, .1, {removeTint:true, useFrames:true}));
  143. _boxTimeline.append(new TweenLite(_box4, .1, {tint:0xC2C3C4, useFrames:true}));
  144. _boxTimeline.append(new TweenLite(_box4, .1, {removeTint:true, useFrames:true, onComplete:restart}));
  145. if (_loadingText) {
  146. _textTimeline.insert( new TweenLite( _loadingText, 2.2, {alpha:0}) );
  147. _textTimeline.append( new TweenLite( _loadingText, 2.2, {alpha:1, onComplete: restartText}) );
  148. }
  149. }
  150. private function restart():void
  151. {
  152. setTimeout(function():void{_boxTimeline.restart();}, 1);
  153. }
  154. private function restartText():void
  155. {
  156. setTimeout(function():void{_textTimeline.restart();}, 1);
  157. }
  158. private function delayBegin():void
  159. {
  160. this.visible = true;
  161. _boxTimeline.restart();
  162. if (_loadingText)
  163. _textTimeline.restart();
  164. }
  165. public function start():void
  166. {
  167. this.visible = false;
  168. setTimeout(delayBegin, 250);
  169. }
  170. public function stop():void
  171. {
  172. _boxTimeline.stop();
  173. if (_loadingText)
  174. _textTimeline.stop();
  175. if (parent && parent.contains(this))
  176. parent.removeChild(this);
  177. }
  178. public function get timeline():TimelineLite { return _boxTimeline};
  179. override public function get width() : Number { return (30*scaleX); };
  180. }
  181. }