BPM Sync

Hi All,

Just wondering if anyone here has had any experience with BPM syncing animations using as3? This is as far as I have got so far. Any suggestions as to how to improve this, or links to some good tutorials would be greatly appreciated.

Thanks

/*

  • Create an FLA and place lines at every 50px mark on the y axis starting at 100px

  • Also you need a click track done in a program like reason or fruity loops with the
    linkage Record1 in your library

*/

stop ();

import flash.media.;
import flash.display.
;
import flash.events.;
import flash.utils.Timer;
import flash.events.TimerEvent;
import fl.transitions.
;
import fl.transitions.easing.*;
import flash.utils.setTimeout;

var bpm:Number = 96;
var minute:Number = 60000;
var beatMS:Number = minute / bpm;
var barMS:Number = (beatMS * 4);
var ballList:Array = [];
var i:int;
var t:Timer
var rec1:Sound = new Record1 as Sound;

createBalls ();

t = new Timer(beatMS,999);
t.start ();

var isPlaying:Boolean = false;

t.addEventListener (TimerEvent.TIMER,updateTimer);
t.addEventListener (TimerEvent.TIMER_COMPLETE,resetTimer);

function createBalls () {

for (i = 0; i < 5; i++) {

    var balls:Sprite = this['ball'+i] as Sprite;
    balls = new Sprite();
    balls.graphics.beginFill (0xff0000,1.0);
    balls.graphics.drawCircle (10,(barMS/100) * i,5);
    balls.y -= (barMS/100)
    balls.graphics.endFill ();
    addChild (balls);
    ballList.push (balls);
}

}
function updateTimer (event:TimerEvent):void {

if (!isPlaying) {

    isPlaying = true;
    rec1.play (0,999);

}
for (i = 0; i < ballList.length; i++) {

    ballList*.y += (barMS/ 100);

}
event.updateAfterEvent ();

}
function resetTimer (event:TimerEvent):void {

t.reset ();
event.updateAfterEvent ();

}