Bad tempo for metronome

Hi all.
First, sorry for my english, i’m french.
My problem, i try to make a metronome with AS3 but i m very newbie. A french flash forum help me to do it.
The tempo is not very good, not like a true metronome.
Please somebody can help me to resolve it.

stop();
speed = 60;
stopBt.visible = false;
 
//cursor//
var rectangle:Rectangle = new Rectangle(0, 36, 0, 252);
 
animation.needle.cursorBt.buttonMode = true;
animation.needle.cursorBt.y = speed*1.2;
 
 
 
function Stop(e:MouseEvent):void{
    animation.stop();
}
 
 
function Restart(e:MouseEvent):void{
    animation.play();
}
 
animation.needle.cursorBt.addEventListener(MouseEvent.MOUSE_DOWN, Move);
function Move(e:MouseEvent):void{
    e.currentTarget.startDrag(false, rectangle);
    stage.frameRate = 0;
}
 
animation.needle.cursorBt.addEventListener(MouseEvent.MOUSE_MOVE, Adapt);
function Adapt(e:Event):void{
    stopBt.visible = true;
    playBt.visible = false;
 speed = animation.needle.cursorBt.y/1.2;
 this.stage.frameRate = speed;
 meter.meter.text = speed;
 trace(speed);
}
 
animation.needle.cursorBt.addEventListener(MouseEvent.MOUSE_UP, Release);
function Release(e:MouseEvent):void{
    animation.play();
    animation.needle.cursorBt.stopDrag();
}
 
//buttons//
playBt.addEventListener(MouseEvent.CLICK, Play);
function Play(e:Event):void{
    stopBt.visible = true;
    playBt.visible = false;
animation.needle.cursorBt.addEventListener(MouseEvent.MOUSE_OVER, Stop);
animation.needle.cursorBt.addEventListener(MouseEvent.MOUSE_OUT, Restart);
 this.stage.frameRate = speed;
 meter.meter.text = speed;
 animation.play();
 if (meter.meter.text == speed){
  speed = speed;
  }
}
 
stopBt.addEventListener(MouseEvent.CLICK, Stop);
function Stop(e:Event):void{
    playBt.visible = true;
    stopBt.visible = false;
 this.stage.frameRate = 0;
 speed = speed;
 animation.gotoAndStop(1);
}
 
//Speed//
var speed:int;
meter.meter.text = "60";
trace(speed);
 
 
incrBt.addEventListener(MouseEvent.MOUSE_DOWN, Increase);
function Increase(e:Event):void{
 speed = speed + 1;
 this.stage.frameRate = speed;
 compteur.compteur.text = speed;
 animation.needle.cursorBt.y = speed*1.2;
 trace(speed);
 if (speed == 240){
  meter.meter.text = "240";
  }
  if (meter.meter.text >= 240){
   meter.meter.text = "240";
   speed = 240;
   }
}
 
 decrBt.addEventListener(MouseEvent.MOUSE_DOWN, Decrease);
function Decrease(e:Event):void{
 speed = speed - 1;
 this.stage.frameRate = speed;
 meter.meter.text = speed;
 animation.needle.cursorBt.y = speed*1.2; 
 trace(speed);
 if (speed == 30){
  meter.meter.text = "30";
  }
  if (meter.meter.text <= 30){
   meter.meter.text = "30";
   speed = 30;
   }
}

Here my .fla : http://www.citecarter.com/metronome.fla
Thank you for help me