/src/com/cw/view/MusicPlayerUI.as

https://bitbucket.org/404assassin/musicplayer · ActionScript · 231 lines · 169 code · 1 blank · 61 comment · 1 complexity · 63d637664e7d73ae01fd5734f7f7276c MD5 · raw file

  1. ////////////////////////////////////////////////////////////////////////////////
  2. // Christian Worley Development & Design
  3. // Copyright ${date} Christian Worley Development & Design
  4. // All Rights Reserved.
  5. ////////////////////////////////////////////////////////////////////////////////
  6. //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  7. // Package Declaration
  8. //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  9. package com.cw.view {
  10. //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  11. /**
  12. * class description: MusicPlayerInterface
  13. * language version: ActionScript 3.0
  14. * player version: Flash 10.0
  15. * author: christian
  16. * created: Dec 23, 2011
  17. * TODO:
  18. */
  19. //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  20. //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  21. // Imports
  22. //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  23. import com.cw.control.observer.ISubject;
  24. import com.cw.model.MusicPlayerState;
  25. import com.cw.view.SpectrumDisplay;
  26. import com.cw.view.buttons.BackButton;
  27. import com.cw.view.buttons.ForwardButton;
  28. import com.cw.view.buttons.NextButton;
  29. import com.cw.view.buttons.PauseButton;
  30. import com.cw.view.buttons.PlayButton;
  31. import com.cw.view.buttons.RewindButton;
  32. import com.cw.view.buttons.StopButton;
  33. import com.cw.view.interfaceElements.ProgressIndicator;
  34. import com.cw.view.interfaceElements.VolumeController;
  35. import com.cw.view.preloaders.OneBarPreloader;
  36. import com.cw.view.spectrum.Lights;
  37. import com.cw.view.text.CDynamicTextField;
  38. import com.cw.view.text.TitleText;
  39. import com.greensock.TweenMax;
  40. import com.greensock.loading.LoaderMax;
  41. import com.greensock.loading.MP3Loader;
  42. import flash.display.Sprite;
  43. //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  44. // Class characteristics
  45. //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  46. public class MusicPlayerUI implements ISubject {
  47. //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  48. // Private Variables
  49. //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  50. private var observer:ISubject;
  51. private var theMusicPlayerUI:Sprite
  52. private var theButtonState:String;
  53. private var buttonHolder:Sprite = new Sprite();
  54. //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  55. // Constructor
  56. //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  57. public function MusicPlayerUI () {}
  58. //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  59. // Public Interfaces
  60. //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  61. public function buildMusicPlayerUI ():void {
  62. addInterface();
  63. }
  64. public function getMusicPlayerUI ():Sprite {
  65. return theMusicPlayerUI;
  66. }
  67. /**
  68. * InvokedObserver interface, reference update, and subscription with
  69. * updated observer and adding subscription with addObserver(this).
  70. */
  71. public function addObserver (observer:ISubject):void {
  72. this.observer = observer;
  73. observer.addObserver(this);
  74. }
  75. /**
  76. * InvokedObserver notification
  77. */
  78. public function notifyObservers (infoObject:String):void {
  79. observer.notifyObservers(theButtonState);
  80. }
  81. /**
  82. * remove an observer refrence from InvokedObserver
  83. */
  84. public function removeObserver (observer:ISubject):void {
  85. this.observer = observer;
  86. observer.removeObserver(this);
  87. }
  88. public function update (infoObject:String):void {
  89. if(hasOwnProperty(infoObject)) {
  90. this[infoObject]();
  91. }
  92. }
  93. //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  94. // Private Methods
  95. //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  96. private function addInterface ():void {
  97. theMusicPlayerUI = new Sprite();
  98. theMusicPlayerUI.addChild(buttonHolder);
  99. specTest();
  100. preloader();
  101. titleText(theMusicPlayerUI);
  102. rewindButton(theMusicPlayerUI);
  103. backButton(theMusicPlayerUI);
  104. stopButton(theMusicPlayerUI);
  105. pauseButton(theMusicPlayerUI);
  106. playButton(theMusicPlayerUI);
  107. nextButton(theMusicPlayerUI);
  108. forwardButton(theMusicPlayerUI);
  109. scrubber();
  110. volumeController();
  111. }
  112. private function specTest():void{
  113. var theLights:Lights = new Lights();
  114. }
  115. /**
  116. * Method for creating and returning the preloader.
  117. */
  118. private function preloader ():void {
  119. var theOneBarPreloader:OneBarPreloader = new OneBarPreloader();
  120. theOneBarPreloader.addObserver(observer);
  121. theOneBarPreloader.initProgressBar();
  122. var preloadBar:Sprite = theOneBarPreloader.getProgressBar();
  123. theMusicPlayerUI.addChild(preloadBar);
  124. preloadBar.x = 171;
  125. preloadBar.y = 140;
  126. }
  127. /**
  128. * Method for creating and returning the scrubber and play progress view.
  129. */
  130. private function scrubber():void{
  131. var theProgressIndicator:ProgressIndicator = new ProgressIndicator();
  132. theProgressIndicator.addObserver(observer);
  133. theProgressIndicator.initProgressBar();
  134. var preloadBar:Sprite = theProgressIndicator.getProgressBar();
  135. theMusicPlayerUI.addChild(preloadBar);
  136. preloadBar.x = 171;
  137. preloadBar.y = 140;
  138. }
  139. /**
  140. * Methods for creating and returning the player buttons.
  141. */
  142. private function rewindButton (theMusicPlayerUI:Sprite):void {
  143. var theRewindButton:RewindButton = new RewindButton();
  144. theRewindButton.addObserver(observer);
  145. theRewindButton.setButton('rewind');
  146. var rewindButton:Sprite = theRewindButton.getButton();
  147. buttonHolder.addChild(rewindButton);
  148. rewindButton.x = 12;
  149. rewindButton.y = 150;
  150. }
  151. private function backButton (theMusicPlayerUI:Sprite):void {
  152. var theBackButton:BackButton = new BackButton();
  153. theBackButton.addObserver(observer);
  154. theBackButton.setButton('back');
  155. var backButton:Sprite = theBackButton.getButton();
  156. buttonHolder.addChild(backButton);
  157. backButton.x = 36;
  158. backButton.y = 150;
  159. }
  160. private function stopButton (theMusicPlayerUI:Sprite):void {
  161. var theStopButton:StopButton = new StopButton();
  162. theStopButton.addObserver(observer);
  163. theStopButton.setButton('stop');
  164. var stopButton:Sprite = theStopButton.getButton();
  165. buttonHolder.addChild(stopButton);
  166. stopButton.x = 60;
  167. stopButton.y = 150;
  168. }
  169. private function pauseButton (theMusicPlayerUI:Sprite):void {
  170. var thePauseButton:PauseButton = new PauseButton();
  171. thePauseButton.addObserver(observer);
  172. thePauseButton.setButton('pause');
  173. var pauseButton:Sprite = thePauseButton.getButton();
  174. buttonHolder.addChild(pauseButton);
  175. pauseButton.x = 84;
  176. pauseButton.y = 150;
  177. }
  178. private function playButton (theMusicPlayerUI:Sprite):void {
  179. var thePlayButton:PlayButton = new PlayButton();
  180. thePlayButton.addObserver(observer);
  181. thePlayButton.setButton('play');
  182. var playButton:Sprite = thePlayButton.getButton();
  183. buttonHolder.addChild(playButton);
  184. playButton.x = 108;
  185. playButton.y = 150;
  186. }
  187. private function nextButton (theMusicPlayerUI:Sprite):void {
  188. var theNextButton:NextButton = new NextButton();
  189. theNextButton.addObserver(observer);
  190. theNextButton.setButton('next');
  191. var nextButton:Sprite = theNextButton.getButton();
  192. buttonHolder.addChild(nextButton);
  193. nextButton.x = 132;
  194. nextButton.y = 150;
  195. }
  196. private function forwardButton (theMusicPlayerUI:Sprite):void {
  197. var theForwardButton:ForwardButton = new ForwardButton();
  198. theForwardButton.addObserver(observer);
  199. theForwardButton.setButton('forward');
  200. var forwardButton:Sprite = theForwardButton.getButton();
  201. buttonHolder.addChild(forwardButton);
  202. forwardButton.x = 156;
  203. forwardButton.y = 150;
  204. }
  205. /**
  206. * Method for creating and returning the mp3 title text field.
  207. */
  208. private function titleText (theMusicPlayerUI:Sprite):void {
  209. var theTitleText:TitleText = new TitleText()
  210. theTitleText.addObserver(observer);
  211. theTitleText.initTheTitleText();
  212. var titleText:Sprite = theTitleText.getTheTitleText()
  213. buttonHolder.addChild(titleText);
  214. titleText.x = 170;
  215. titleText.y = 139;
  216. }
  217. /**
  218. * Method for creating and returning the mp3 volume controller.
  219. */
  220. private function volumeController():void{
  221. var theVolumeController:VolumeController = new VolumeController();
  222. theVolumeController.addObserver(observer);
  223. theVolumeController.initVolumeController();
  224. var volumeController:Sprite = theVolumeController.getVolumeController()
  225. theMusicPlayerUI.addChild(volumeController);
  226. volumeController.x = 475;
  227. volumeController.y = 139;
  228. }
  229. }
  230. }