2012-08-14 71 views
0

因此,我有2个场景中的计时器。第一场景中的计时器完美运作。但是,当我尝试到第二个场景时,计时器变得如此之快。 我有2组代码:Actionscript 2定时器快速降低

_root.timer = 10; 
clearInterval(id); 
id = setInterval (function() 
      { 
       _root.timer--; 
       if(timer==0) 
       { 
        gotoAndStop(65); 
       } 
      }, 1000); 

与此:

timer = 10; 
timer.text= timer; 
countdown = function(){ 
      timer--; 
      if(timer==0){ 
         clearInterval(countdownInterval); 
         gotoAndStop(65); 
         } 
         } 
countdownInterval = setInterval(countdown,1000); 

我知道,1000毫秒= 1秒。我只是不知道是什么导致计时器在第二个场景中快速下降。你怎么看?

回答

0

在第二个场景中,定时器decrase快2倍,因为有两个setInterval运行,_root.timer将等于两个阶段的定时器。所以有两个函数每秒调用一次,并且每个函数都会解码同一个变量。

解决方案:在第二个场景中,将计时器变量重命名为timer2或timernew。

+0

明白了。谢谢。呃,可以暂停并播放定时器吗?我的意思是说,没有重新设置它。它会在停止的地方播放。也许,通过使用按钮。非常感谢你。 – user1587341 2012-08-14 16:47:39

+0

我不知道AS2的定时器实现,但在AS3中它漂亮的东西,用新的Timer()创建定时器对象;并使用timer.reset(); timer.start();但是,如果将函数定义为全局函数,则将函数定义为clearInterval和setInterval。 – 2012-08-14 18:15:59