Apache flex Flex 3:计时器赢得';停不下来

Apache flex Flex 3:计时器赢得';停不下来,apache-flex,timer,Apache Flex,Timer,我正在使用Flex3和Flash9 我正在尝试制作一个计时器,它将在1秒后运行一次。不幸的是,我的计时器不断重复。我怎样才能让它停下来 public var myTimer:Timer = new Timer(1000, 1); private function visFunc():void { myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, imageProducer); myTimer.start(); } pri

我正在使用Flex3和Flash9

我正在尝试制作一个计时器,它将在1秒后运行一次。不幸的是,我的计时器不断重复。我怎样才能让它停下来

public var myTimer:Timer = new Timer(1000, 1);


private function visFunc():void {

   myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, imageProducer);
   myTimer.start();

}

private function imageProducer(event:TimerEvent):void {


   var img:Image = new Image;
   img.source = image_path;
   img.x = 56;
   img.y = (tf.y + tf.height + 40);
   radioVBox.addChildAt(img, 0);
   this.height = radioVBox.y + radioVBox.height +110;
   myTimer.stop();
   myTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, imageProducer);
}
多谢各位


-Laxmidi

我将我的代码更改为以下内容并运行一些测试,因为我没有看到任何重大问题。。。但是,如果您没有调试和/或没有运行flashplayer的调试器版本,则vbox.addChild行上可能会出现问题(例如--null vbox)。如果您的imageProducer函数很酷,那么您的问题就在“调用”函数之外

private var myTimer : Timer;

private function visFunc():void
{
    if(myTimer != null) 
    {
        tearDownTimer();
    }

    myTimer = new Timer(1000,1);
    myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, imageProducer);
    myTimer.start();

}

private function tearDownTimer():void
{
    if(myTimer) 
    {
        myTimer.stop();
        myTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, imageProducer);
        myTimer = null;
    }
}


private function imageProducer(event:TimerEvent):void
{
   var img:Image = new Image();
   img.source = image_path;
   img.x = 56;
   img.y = (tf.y + tf.height + 40);
   radioVBox.addChildAt(img, 0);
   this.height = radioVBox.y + radioVBox.height +110;

   tearDownTimer();
}

visFunc如何命名?你确定没有人打过多次电话吗?嗨,杰里米,非常感谢你的帮助。我犯了一个非常愚蠢的错误。我无意中多次调用了visFunc函数。再次感谢你的帮助。