Guest User

Untitled

a guest
Jul 20th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.96 KB | None | 0 0
  1.  
  2. import com.mosesSupposes.fuse.*;
  3. ZigoEngine.register(Fuse, FuseFMP, PennerEasing, FuseItem);
  4. ZigoEngine.DURATION = 0.25;
  5.  
  6. #include "amps.as"
  7.  
  8. // Setup Volume Control
  9. var heightFactor:Number = 2.5;
  10. var xFactor:Number = 4;
  11. var yFactor:Number = -4.3;
  12. var widthFactor:Number = 2.1;
  13. var startX:Number = -28;
  14. var numFilled:Number = 0;
  15. var currentVolume:Number = 80;
  16.  
  17.  
  18. pos_bar._alpha = 40;
  19. p_bar._alpha = 0;
  20.  
  21. p_bar.onPress = function() {
  22. p_state = 1;
  23. s.stop();
  24. p_bar.startDrag(false, -129.3, 2, -71, 2);
  25. }
  26.  
  27. p_bar.onRelease = releasePosBar;
  28.  
  29. p_bar.onReleaseOutside = function() {
  30.  
  31. ZigoEngine.DURATION = 1.0;
  32. ZigoEngine.doTween(pos_bar, "_alpha", 40);
  33. ZigoEngine.doTween(p_bar, "_alpha", 0);
  34. ZigoEngine.doTween(song_view, "_alpha", 100);
  35.  
  36. releasePosBar();
  37. }
  38.  
  39. function releasePosBar() {
  40. p_bar.stopDrag();
  41.  
  42. var perc:Number = Math.abs(-129.3 - p_bar._x)/60;
  43. var pos:Number = perc*s.duration;
  44.  
  45. play_dis._alpha = 100;
  46. pause_dis._alpha = 0;
  47.  
  48. p_state = 0;
  49.  
  50. s.position = pos;
  51. s.setVolume(currentVolume);
  52. s.start(pos/1000);
  53. }
  54.  
  55. pos_bar.onRollOver = p_bar.onRollOver = function() {
  56. ZigoEngine.DURATION = 1.0;
  57.  
  58. ZigoEngine.doTween(pos_bar, "_alpha", 100);
  59. ZigoEngine.doTween(p_bar, "_alpha", 100);
  60. ZigoEngine.doTween(song_view, "_alpha", 0);
  61.  
  62.  
  63. }
  64.  
  65. pos_bar.onRollOut = p_bar.onRollOut = function() {
  66.  
  67. ZigoEngine.DURATION = 1.0;
  68. ZigoEngine.doTween(pos_bar, "_alpha", 40);
  69. ZigoEngine.doTween(p_bar, "_alpha", 0);
  70. ZigoEngine.doTween(song_view, "_alpha", 100);
  71. }
  72.  
  73.  
  74. // Setup sound object
  75. var s:Sound = new Sound();
  76. s.onSoundComplete = playSong;
  77. initVolume(80);
  78.  
  79. function initVolume(newVol:Number) {
  80.  
  81. var pctVolume:Number = 100/7;
  82. var numFill:Number = Math.round(newVol / pctVolume);
  83.  
  84. /* Generate background bars */
  85. for (var volBars:Number = 0; volBars < 7; volBars++) {
  86.  
  87. var newBar:MovieClip = this.attachMovie("volume_bar","vbar_"+volBars, this.getNextHighestDepth());
  88.  
  89. newBar._x = volBars*xFactor + startX;
  90. newBar._width = widthFactor;
  91. newBar._height = heightFactor * volBars;
  92. newBar._y = 7.5 + newBar._height / 2;
  93.  
  94. }
  95.  
  96. currentVolume = newVol;
  97. numFilled = numFill;
  98. fillBars(numFill);
  99. s.setVolume(newVol);
  100.  
  101. }
  102.  
  103. function fillBars(num:Number) {
  104.  
  105. for (var count:Number = 0; count < num; count++) {
  106.  
  107. ZigoEngine.doTween(eval("vbar_" + count), "_tint", 0x000000);
  108. f.start();
  109. }
  110.  
  111. }
  112.  
  113. /* Volume Clip Array */
  114. var volClips:Array = new Array(7);
  115.  
  116. /* Set the Clips to the Volume Array */
  117. for (var temp:Number = 0; temp < 7; temp++)
  118. volClips[temp] = eval("vbar_" + temp);
  119.  
  120. /* Event Setup for ALL Clips */
  121. for (var temp:Number = 0; temp < 7; temp++) {
  122.  
  123.  
  124.  
  125. /****************************************************************************
  126. * ROLLOVER FUNCTION *
  127. * **************************************************************************
  128. * Notes: None. *
  129. * On Roll Over = Tint the current and all clips previous to blue *
  130. * **************************************************************************/
  131. volClips[temp].onRollOver = function() {
  132.  
  133. var s:String = this._name.substring(5,6);
  134.  
  135. for (var a:Number = 0; a <= s; a++) {
  136. ZigoEngine.doTween({target:eval("vbar_" + a), tint:0x1B09C4, time:0.05, ease:"easeOutQuad"});
  137. }
  138.  
  139. }
  140. /*********************** END ROLLOVER FUNCTION ******************************/
  141.  
  142.  
  143. /****************************************************************************
  144. * ROLLOUT FUNCTION *
  145. * **************************************************************************
  146. * Notes: Sloppy Code. Can be done recursively. Re-do for efficiency! - MB *
  147. * What it does: Tint only previously filled bars to black, others to white *
  148. * **************************************************************************/
  149. volClips[temp].onRollOut = function() {
  150.  
  151. /* Since our mc contains the position inside
  152. * the instance name, we can use a substring */
  153. var s:String = this._name.substring(5,6);
  154.  
  155. /* If that position is less than the number of filled bars,
  156. * we want to tint them black because they were filled previously */
  157. if (s < numFilled) {
  158.  
  159. ZigoEngine.doTween({target:this, tint:0x000000, time:0.05, ease:"easeOutQuad"});
  160.  
  161. for (var a:Number = 0; a < s; a++)
  162. ZigoEngine.doTween({target:eval("vbar_" + a), tint:0x000000, time:0.05, ease:"easeOutQuad"});
  163.  
  164. } else { /* Otherwise, we will tent the unfilled mc's back to white */
  165.  
  166. ZigoEngine.doTween({target:this, tint:0xFFFFFF, time:0.05, ease:"easeOutQuad"});
  167.  
  168. for (var a:Number = 0; a < s; a++) {
  169. if (a < numFilled)
  170. ZigoEngine.doTween({target:eval("vbar_" + a), tint:0x000000, time:0.05, ease:"easeOutQuad"});
  171. else
  172. ZigoEngine.doTween({target:eval("vbar_" + a), tint:0xFFFFFF, time:0.05, ease:"easeOutQuad"});
  173. }
  174.  
  175. }
  176.  
  177. }
  178. /**************************** END OF ROLLOUT FUNCTION ******************************/
  179.  
  180. /****************************************************************************
  181. * ONPRESS FUNCTION *
  182. * **************************************************************************
  183. * Notes: None. *
  184. * What it does: Fill bars up to where we click! *
  185. * **************************************************************************/
  186. volClips[temp].onPress = function() {
  187. var mc_instance:String = this._name.substring(5,6);
  188.  
  189. numFilled = int(mc_instance) + 1;
  190.  
  191. var newV:Number = Math.round( (100/7)*numFilled );
  192.  
  193. for (var a:Number = numFilled; a < 7; a++) {
  194.  
  195. ZigoEngine.doTween({target:eval("vbar_" + a), tint:0xFFFFFF, time:0.05, ease:"easeOutBounce"});
  196. }
  197.  
  198. currentVolume = newV;
  199. s.setVolume(newV);
  200.  
  201. }
  202.  
  203.  
  204.  
  205. }
  206.  
  207.  
  208. // Array of songs
  209. var sa:Array = new Array();
  210.  
  211. // Currently playing song
  212. var cps:Number = Math.round(Math.random()*2);
  213.  
  214. // Position of music
  215. var pos:Number;
  216.  
  217. // Load the songs XML
  218. var xml:XML = new XML();
  219. xml.ignoreWhite = true;
  220. xml.onLoad = function()
  221. {
  222. var nodes:Array = this.firstChild.childNodes;
  223. for(var i=0;i<nodes.length;i++)
  224. {
  225. sa.push(new Song(nodes[i].attributes.url, nodes[i].attributes.artist, nodes[i].attributes.track));
  226. }
  227. playSong();
  228. }
  229.  
  230. xml.load("songs.xml");
  231.  
  232.  
  233. this.onEnterFrame = function() {
  234.  
  235. if (p_state == 1) {
  236.  
  237. for (var a:Number = 0; a < numEqualizers; a++) {
  238. eval("this._parent.amp_bars.m" + a)._height = 0;
  239. }
  240.  
  241. } else {
  242.  
  243. var perc:Number = s.position/s.duration;
  244. var index:Number = Math.floor(eval("amp" + (cps + 1)).length*perc);
  245. var ampNum:Array = new Array();
  246.  
  247. p_bar._x = -129.3 + perc*60.0;
  248. pos_bar.alpha_back._width = perc*60.0 + (p_bar._width);
  249.  
  250. for (var v:Number = 0; v < numEqualizers; v++) {
  251.  
  252. var indValue:Number = eval("amp" + (cps + 1))[index + (v%numEqualizers)]*4;
  253.  
  254. ampNum[v] = equalizerHeight - indValue;
  255. }
  256.  
  257. for (var z:Number = 0; z < numEqualizers; z++) {
  258.  
  259. var mc_mask:MovieClip = eval ("this._parent.amp_bars.eq" + z + ".m");
  260. var mc:MovieClip = eval("this._parent.amp_bars.eq" + z);
  261. var fallingBar:MovieClip = eval("this._parent.amp_bars.h" + z);
  262.  
  263. var hFactor:Number = equalizerHeight - ampNum[z];
  264.  
  265.  
  266. mc_mask._height = hFactor;
  267.  
  268. var hScale:Number = equalizerHeight / 134;
  269.  
  270.  
  271. if ( (hFactor*hScale) > (Math.abs(fallingBar._y)) ) {
  272. fallingBar._y = -(hFactor*hScale);
  273. }
  274.  
  275. var colorIndex:Number = ((Math.abs(fallingBar._y)) / equalizerHeight)*255;
  276. colorIndex = Math.floor(colorIndex);
  277.  
  278. var f:Fuse = new Fuse();
  279.  
  280.  
  281. f.push({target:fallingBar, tint:0x00FF00*colorIndex, time:0, ease:"easeOutQuad"});
  282. f.start();
  283.  
  284.  
  285.  
  286.  
  287. }
  288.  
  289. }
  290.  
  291. }
  292.  
  293. // Play the MP3 File
  294. function playSong():Void
  295. {
  296. s = new Sound();
  297. s.onSoundComplete = playSong;
  298. s.setVolume(currentVolume);
  299. if(cps == sa.length - 1)
  300. {
  301. cps = 0;
  302. s.loadSound(sa[cps].earl, true);
  303. }
  304. else
  305. {
  306. s.loadSound(sa[++cps].earl, true);
  307. }
  308. song_view.song_name.text = cps+1 + ") " + sa[cps].artist + " - " + sa[cps].track;
  309. textPos = 0;
  310. }
  311.  
  312. function goBack():Void
  313. {
  314. s = new Sound();
  315. s.onSoundComplete = playSong;
  316. s.setVolume(currentVolume);
  317. if(cps == 0)
  318. {
  319. cps = sa.length-1;
  320. s.loadSound(sa[cps].earl, true);
  321. }
  322. else
  323. {
  324. s.loadSound(sa[--cps].earl, true);
  325. }
  326. song_view.song_name.text = cps+1 + ") " + sa[cps].artist + " - " + sa[cps].track;
  327. textPos = 0;
  328. }
  329.  
  330. var p_state:Number = 0;
  331. var play_state:Number = 1;
  332. mute.mute_symbol._alpha = 0;
  333. play_dis._alpha = 100;
  334. pause_dis._alpha = 0;
  335.  
  336. // Pauses the music
  337. function pauseIt():Void
  338. {
  339. if (p_state == 0) {
  340. pos = s.position;
  341. s.stop();
  342. p_state = 1;
  343. play_dis._alpha = 0;
  344. pause_dis._alpha = 100;
  345. } else {
  346. play_dis._alpha = 100;
  347. pause_dis._alpha = 0;
  348. p_state = 0;
  349. s.setVolume(currentVolume);
  350. s.start(pos/1000);
  351. }
  352. }
  353.  
  354. play_but.onPress = function() {
  355. if (play_dis._alpha != 100) {
  356. this._parent.pauseIt();
  357. }
  358. }
  359.  
  360. play_but.onRollOver = function() {
  361. if (play_dis._alpha != 100) {
  362. var f:Fuse = new Fuse();
  363. f.push({target:play_but, brightness: 40, time:0.25, ease:"easeOutQuad"});
  364. f.start();
  365. }
  366. }
  367.  
  368. play_but.onRollOut = function() {
  369. if (play_dis._alpha != 100) {
  370. var f:Fuse = new Fuse();
  371. f.push({target:play_but, brightness: 0, time:0.25, ease:"easeOutQuad"});
  372. f.start();
  373. }
  374. }
  375.  
  376. pause.onRollOver = function() {
  377. if (pause_dis._alpha != 100) {
  378. var f:Fuse = new Fuse();
  379. f.push({target:pause, brightness: 40, time:0.25, ease:"easeOutQuad"});
  380. f.start();
  381. }
  382. }
  383.  
  384. pause.onRollOut = function() {
  385. if (pause_dis._alpha != 100) {
  386. var f:Fuse = new Fuse();
  387. f.push({target:pause, brightness: 0, time:0.25, ease:"easeOutQuad"});
  388. f.start();
  389. }
  390. }
  391.  
  392. back.onRollOver = function() {
  393. var f:Fuse = new Fuse();
  394. f.push({target:back, brightness: 40, time:0.25, ease:"easeOutQuad"});
  395. f.start();
  396. }
  397.  
  398. back.onRollOut = function() {
  399. var f:Fuse = new Fuse();
  400. f.push({target:back, brightness: 0, time:0.25, ease:"easeOutQuad"});
  401. f.start();
  402. }
  403.  
  404.  
  405. forward.onRollOver = function() {
  406. var f:Fuse = new Fuse();
  407. f.push({target:forward, brightness: 40, time:0.25, ease:"easeOutQuad"});
  408. f.start();
  409. }
  410.  
  411. forward.onRollOut = function() {
  412. var f:Fuse = new Fuse();
  413. f.push({target:forward, brightness: 0, time:0.25, ease:"easeOutQuad"});
  414. f.start();
  415. }
  416.  
  417. mute.onRollOver = function() {
  418. var f:Fuse = new Fuse();
  419. f.push({target:mute, brightness: 40, time:0.25, ease:"easeOutQuad"});
  420. f.start();
  421. }
  422.  
  423. mute.onRollOut = function() {
  424. var f:Fuse = new Fuse();
  425. f.push({target:mute, brightness: 0, time:0.25, ease:"easeOutQuad"});
  426. f.start();
  427. }
  428.  
  429.  
  430. pause.onPress = function() {
  431. this._parent.pauseIt();
  432. }
  433.  
  434. forward.onPress = function() {
  435. this._parent.playSong();
  436. }
  437.  
  438. back.onPress = function() {
  439. this._parent.goBack();
  440. }
  441.  
  442. mute.onPress = function() {
  443. if (mute.mute_symbol._alpha != 100) {
  444. s.setVolume(0);
  445. mute.mute_symbol._alpha = 100;
  446. } else {
  447. s.setVolume(currentVolume);
  448. mute.mute_symbol._alpha = 0;
  449. }
  450. }
  451.  
  452. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  453. // Text scroller bonus code
  454.  
  455. var size_t:Number = 21;
  456. var textPos:Number = 0;
  457. var intervalID:Number = setInterval(scroller, 200);
  458.  
  459. function scroller():Void
  460. {
  461. var t:String = (cps+1 + ") " + sa[cps].artist + " - " + sa[cps].track);
  462. if(textPos+size_t < t.length)
  463. {
  464. textPos++;
  465. song_view.song_name.text = (cps+1 + ") " + sa[cps].artist + " - " + sa[cps].track).substring(textPos, textPos+size_t);
  466. }
  467. else
  468. {
  469. clearInterval(intervalID);
  470. intervalID = setInterval(scroller2, 200);
  471. }
  472. }
  473.  
  474. function scroller2():Void
  475. {
  476. var t:String = (cps+1 + ") " + sa[cps].artist + " - " + sa[cps].track);
  477. if(textPos > 0)
  478. {
  479. textPos--;
  480. song_view.song_name.text = (cps+1 + ") " + sa[cps].artist + " - " + sa[cps].track).substring(textPos, size_t);
  481. }
  482. else
  483. {
  484. clearInterval(intervalID);
  485. intervalID = setInterval(scroller, 200);
  486. }
  487. }
Add Comment
Please, Sign In to add comment