Flex 3:计时器不会停止

发布于 2024-10-03 21:35:25 字数 676 浏览 0 评论 0原文

我正在使用 Flex 3 和 Flash 9。

我正在尝试制作一个计时器,该计时器将在 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);
}

谢谢。

-拉克斯米迪

I'm using Flex 3 with Flash 9.

I'm trying to make a timer that will run once after 1 second. Unfortunately, me timer keeps repeating. How do I get it to stop?

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);
}

Thank you.

-Laxmidi

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不必你懂 2024-10-10 21:35:25

我会将代码更改为以下内容并运行一些测试,因为我没有看到任何重大问题...但是,如果您没有调试和/或没有运行 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();
}

I'd change my code to the following and run some tests, since I don't see any major issues... HOWEVER, if you're not debugging and/or don't have a debugger version of flashplayer running, something may be blowing up on the vbox.addChild line (for example -- null vbox). If your imageProducer function is cool, then your issue is outside of the 'calling' function.

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();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文