Advertisement
Guest User

Mycode

a guest
Oct 15th, 2011
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var bpm:Number = 172.0;
  2. var startBar:int = 3;
  3. var endBar:int = 185;
  4. var secondsPerBar:Number = 240.0 / bpm;
  5. var speed:Number = secondsPerBar;
  6. var beatTime:Number = secondsPerBar / 8.0;
  7. var arrows:Array = [];
  8. var currentBar:int;
  9. var currentBeat:int;
  10. var data:Vector.<int> = new <int>[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,4,4,4,0,8,4,4,0,4,4,4,0,8,4,4,0,4,4,4,0,8,4,4,0,4,4,4,0,8,4,4,0,4,4,4,0,8,4,4,0,4,4,4,0,8,4,4,0,4,4,4,0,8,4,4,8,0,0,0,0,2,1,0,0,4,4,4,0,8,4,4,0,5,4,4,0,8,4,4,0,5,4,4,0,8,4,4,0,5,4,4,0,8,4,4,0,5,4,4,0,8,4,4,0,5,4,4,0,8,4,4,0,5,4,4,0,8,4,4,8,0,0,0,0,2,0,0,0,4,0,4,0,8,0,0,4,0,8,4,0,8,4,0,0,4,0,4,0,8,0,0,4,0,8,4,0,8,4,0,0,4,0,4,0,8,0,0,4,0,8,4,0,8,4,0,0,4,0,4,0,8,0,8,4,0,8,4,0,8,0,8,8,4,0,4,0,8,0,0,4,0,8,4,0,8,4,0,0,4,0,4,0,8,0,8,4,0,8,4,0,8,4,0,0,4,0,4,0,8,0,0,4,0,8,4,0,8,4,0,0,4,0,4,0,8,0,8,4,0,8,4,0,2,1,2,0,4,4,8,4,0,4,8,4,0,4,12,0,0,0,8,4,4,4,8,0,0,0,8,4,0,4,12,0,0,0,8,4,4,4,8,4,0,0,8,4,0,4,12,0,0,0,8,4,4,4,8,0,0,0,8,4,0,4,8,0,4,8,0,8,4,4,8,4,0,0,8,4,0,4,12,0,0,0,8,4,4,4,8,0,0,0,8,4,0,4,12,0,0,0,8,4,4,4,8,0,0,0,8,4,0,4,12,0,0,0,8,4,4,0,4,0,8,0,8,4,0,8,4,0,8,0,9,9,4,0,8,4,4,0,8,0,4,0,8,4,4,0,8,0,4,0,8,4,4,0,8,0,4,0,8,4,4,0,8,0,4,0,8,4,4,0,8,0,4,0,8,4,4,0,8,0,4,0,8,4,4,0,8,0,4,8,8,4,8,4,8,0,4,0,12,0,4,0,12,0,4,0,12,0,4,0,12,0,4,0,12,0,4,0,12,0,4,0,12,0,2,1,4,8,4,0,4,0,8,0,0,4,0,8,4,0,8,4,4,4,4,0,4,0,8,0,0,4,0,8,4,0,8,0,4,0,4,0,4,0,8,0,0,4,0,8,4,0,8,4,4,4,4,0,4,0,8,8,8,8,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,2,0,0,0,0,0,0,0,8,1,2,1,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,1,2,0,1,4,4,8,4,0,4,8,4,0,0,8,0,0,0,4,4,4,4,8,0,0,0,8,4,0,4,12,0,0,0,8,4,4,4,8,0,0,0,8,4,0,4,12,0,0,0,8,4,4,4,8,0,0,0,8,4,4,4,8,4,0,2,1,2,4,4,8,4,0,0,8,4,0,4,12,0,0,0,8,4,4,4,8,0,0,0,8,4,0,4,12,0,0,0,8,4,4,4,8,0,0,0,8,4,0,4,8,0,0,0,8,0,4,0,4,0,8,0,8,4,0,8,4,0,9,9,9,9,4,0,8,4,4,0,8,0,4,0,8,4,4,0,8,0,4,0,8,4,4,0,8,0,4,0,8,4,4,0,8,0,2,0,8,4,4,0,8,0,4,0,8,4,4,0,8,0,4,0,8,4,4,0,8,0,4,2,2,4,2,4,2,0,4,0,12,0,4,0,12,0,4,0,5,0,4,0,5,0,4,0,0,0,4,0,12,0,4,0,12,0,2,1,2,0,4,0,4,0,8,0,0,4,0,8,4,0,8,4,4,4,4,0,4,0,8,0,0,4,0,8,4,0,8,4,4,4,4,0,4,0,8,0,0,4,0,8,4,0,8,4,4,4,4,0,4,0,8,8,8,4,0,8,4,0,8,0,8,0,4,0,4,0,8,4,0,4,0,0,0,0,8,4,4,4,4,0,4,0,8,4,0,4,0,0,0,0,2,1,0,0,4,0,4,0,8,4,0,4,0,0,0,0,0,0,0,0,4,0,4,0,8,4,0,4,0,0,0,0,0,0,0,0,4,0,4,0,8,4,0,4,0,0,0,0,2,1,0,0,4,0,4,0,8,4,0,4,0,0,4,0,4,0,4,0,4,0,4,0,8,4,0,4,0,0,0,0,0,0,0,0,4,0,4,0,8,4,0,4,0,2,1,2,1,2,1,2,4,0,8,0,0,0,8,0,4,0,8,0,0,0,8,4,4,0,8,0,0,0,8,4,0,0,8,0,0,0,8,4,4,0,8,0,0,0,8,4,0,4,8,0,0,0,8,4,4,0,8,0,0,0,8,4,0,4,8,0,0,0,8,4,4,4,8,0,0,0,8,4,0,4,8,0,0,0,8,4,4,4,8,0,0,0,8,4,0,4,8,0,0,0,8,4,4,4,8,0,0,0,8,4,0,4,8,0,0,0,8,4,4,4,8,0,0,0,8,4,0,4,8,0,0,0,8,4,4,4,8,0,0,0,8,4,4,4,8,0,0,0,8,4,4,4,8,0,0,0,8,4,4,4,8,4,4,4,8,4,4,4,8,0,0,0,8,4,4,4,8,0,0,0,8,4,4,4,8,0,0,0,8,4,4,4,8,4,4,4,8,4,4,4,8,4,4,4,2,4,4,4,1,4,4,4,8,4,4,4,2,4,4,4,1,4,4,4,8,4,4,4,2,4,4,4,1,4,4,4,8,4,4,4,8,4,8,4,8,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,4,8,4,0,4,8,4,0,4,8,4,4,4,8,4,0,4,8,4,0,4,8,4,0,4,8,4,4,4,8,4,0,4,8,4,0,4,8,4,4,4,8,4,0,4,8,4,0,4,8,4,0,4,8,4,0,4,8,4,4,4,8,4,8,4,8,4,8,4,8,4,8,4,8,4,8,4,8,4,8,4,8,4,8,4,9,9,9,9,9,9,9,9,4,1,4,1,4,1,12,1,4,1,12,1,4,1,12,1,4,1,12,1,4,1,12,1,4,1,12,1,4,1,12,1,4,1,12,1,4,1,12,1,4,1,12,1,4,1,12,1,4,1,12,1,4,1,12,1,4,1,12,1,4,1,12,1,4,0,4,0,8,4,0,4];
  11. var frameKeys:Array = [];
  12. var startTime:int;
  13. var music:Sound = new Music();
  14. var musicChannel:SoundChannel = music.play();
  15. musicChannel.stop();
  16.  
  17. function enterFrameHandler(event:Event):void
  18. {
  19.     var now:int = getTimer();
  20.     trace(startTime);
  21.     var time:Number = (now - startTime) / 1000;
  22.     trace(now);
  23.     currentBar = time / secondsPerBar;
  24.     var barTime:Number = time % secondsPerBar;
  25.     var beat:int = barTime / beatTime;
  26.     measure_tf.text = "Bar  : " + currentBar + "\nBeat : " + beat;
  27.     var n:int = arrows.length;
  28.     for (var i:int = n - 1; i > -1; i--)
  29.     {
  30.         var arrow:MovieClip = arrows[i];
  31.         if (frameKeys[arrow.currentFrame] && arrow.hitTestObject(targetLine))
  32.         {
  33.             removeChild(arrow);
  34.             arrows.splice(i, 1);
  35.             continue;
  36.         }
  37.         arrow.y = (time - arrow.time) / speed * 500;
  38.         if (arrow.y >= 600)
  39.         {
  40.             removeChild(arrow);
  41.             arrows.splice(i, 1);
  42.         }
  43.     }
  44.     frameKeys.length = 0;
  45.     currentBeat = beat;
  46.     var position:int = currentBar * 8 + currentBeat;
  47.     if (position >= data.length)
  48.         return;
  49.     var bits:int = data[position];
  50.     if (!bits)
  51.         return;
  52.     for (var shift:int = 0; shift < 4; shift++)
  53.     {
  54.         if (!(bits & 1 << shift))
  55.             continue;
  56.         arrow = new Arrow();
  57.         arrow.time = position * beatTime;
  58.         arrow.gotoAndStop(shift + 1);
  59.         arrow.x = 225 + (arrow.currentFrame - 1) * 50;
  60.         arrow.y = (time - arrow.time) / speed * 500;
  61.         addChild(arrow);
  62.         arrows.push(arrow);
  63.     }
  64. }
  65.  
  66. function keyDownHandler(event:KeyboardEvent):void
  67. {
  68.     switch (event.keyCode)
  69.     {
  70.         case Keyboard.LEFT:
  71.         {
  72.             frameKeys[1] = true;
  73.             break;
  74.         }
  75.         case Keyboard.UP:
  76.         {
  77.             frameKeys[2] = true;
  78.             break;
  79.         }
  80.         case Keyboard.DOWN:
  81.         {
  82.             frameKeys[3] = true;
  83.             break;
  84.         }
  85.         case Keyboard.RIGHT:
  86.         {
  87.             frameKeys[4] = true;
  88.             break;
  89.         }
  90.     }
  91.     event.updateAfterEvent();
  92. }
  93.  
  94. function recordEnterFrameHandler(event:Event):void
  95. {
  96.     var now:int = getTimer();
  97.     var time:Number = (now - startTime) / 1000;
  98.     currentBar = time / secondsPerBar;
  99.     var barTime:Number = time % secondsPerBar;
  100.     currentBeat = barTime / beatTime;
  101.     measure_tf.text = "Bar  : " + currentBar + "\nBeat : " + currentBeat;
  102. }
  103.  
  104. function recordKeyDownHandler(event:KeyboardEvent):void
  105. {
  106.     var position:int = (currentBar - 1) * 8 + currentBeat + 1;
  107.     if (position < 0)
  108.         return;
  109.     data.length = position + 1;
  110.     switch (event.keyCode)
  111.     {
  112.         case Keyboard.LEFT:
  113.         {
  114.             data[position] |= 1;
  115.             break;
  116.         }
  117.         case Keyboard.UP:
  118.         {
  119.             data[position] |= 2;
  120.             break;
  121.         }
  122.         case Keyboard.DOWN:
  123.         {
  124.             data[position] |= 4;
  125.             break;
  126.         }
  127.         case Keyboard.RIGHT:
  128.         {
  129.             data[position] |= 8;
  130.             break;
  131.         }
  132.     }
  133.     event.updateAfterEvent();
  134. }
  135.  
  136. function startPlay(event:Event = null):void
  137. {
  138.     trace("[" + data + "]");
  139.     //data_tf.text = "[" + data + "]";
  140.     removeEventListener(Event.ENTER_FRAME, recordEnterFrameHandler);
  141.     stage.removeEventListener(KeyboardEvent.KEY_DOWN, recordKeyDownHandler, false);
  142.     addEventListener(Event.ENTER_FRAME, enterFrameHandler);
  143.     stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, false);
  144.     frameKeys = [];
  145.     if (musicChannel)
  146.         musicChannel.stop();
  147.     startTime = getTimer();
  148.     musicChannel = music.play();
  149.     musicChannel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
  150. }
  151.  
  152. function startRecord(event:Event = null):void
  153. {
  154.     var n:int = arrows.length;
  155.     for (var i:int = 0; i < n; i++)
  156.     {
  157.         removeChild(arrows[i]);
  158.     }
  159.     arrows.length = 0;
  160.     removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
  161.     stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, false);
  162.     addEventListener(Event.ENTER_FRAME, recordEnterFrameHandler);
  163.     stage.addEventListener(KeyboardEvent.KEY_DOWN, recordKeyDownHandler, false);
  164.     data.length = 0;
  165.     if (musicChannel)
  166.         musicChannel.stop();
  167.     startTime = getTimer();
  168.     musicChannel = music.play();
  169.     musicChannel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
  170. }
  171.  
  172. function soundCompleteHandler(event:Event):void
  173. {
  174.     removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
  175.     stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, false);
  176.     removeEventListener(Event.ENTER_FRAME, recordEnterFrameHandler);
  177.     stage.removeEventListener(KeyboardEvent.KEY_DOWN, recordKeyDownHandler, false);
  178. }
  179.  
  180. recordButton.addEventListener(MouseEvent.CLICK, startRecord);
  181. playButton.addEventListener(MouseEvent.CLICK, startPlay);
  182.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement