2016-06-13 190 views
0

我目前正在創建一個遊戲,需要倒數計時器在60秒開始,但是計時器持續4秒後自行循環。如何停止循環倒計時計時器幀循環Actionscript 3.0

下面是我在Adobe動畫中使用的代碼和框架完整

import flash.utils.Timer; 

var count:Number = 60; 
var myTimer:Timer = new Timer(1000,count); 
myTimer.addEventListener (TimerEvent.TIMER, countdown); 
myTimer.start(); 

function countdown(event:TimerEvent) : void 
{ 
Timer_txt.text = String ((count)-myTimer.currentCount + " seconds"); 
} 
+0

你能否在你的問題中增加一些細節?你在'Timer_txt'元素中看到了什麼輸出,以及你期望看到什麼?另外,你在哪裏定義了這段代碼 - 它是在一個時間軸上,在一個ENTER_FRAME監聽器中,還是在一個類的某個地方? – Brian

+0

當我運行動畫時,Timer_txt顯示「60秒」。但是一旦它達到「56秒」,倒數計時器又循環回60秒。我創建了一個遊戲,要求倒數計時器將播放時間限制爲60秒,並通過編碼this.gotoAndPlay()來循環幀。但是一旦我添加了倒數計時器,它也會循環。我的問題是如何讓幀定時器繼續倒計時幀循環?如果有人能幫助我,我會很感謝你。 – aamion

+0

你知道如何使用Document類嗎?在時間線上放置代碼時,每個關鍵幀都會分別運行。如果你的計時器在時間線上,那麼你的計時器將會重新創建(因爲我猜測你的幀會累加4秒?)。但是,如果將它放在Document類中,則循環的幀不會再影響計時器。 – Brian

回答

0

您正在使用不正確的構造方法時,它不斷地循環。看API文檔(here)後,我發現

myTimer: Timer = new Timer(1000, 60); 

將創建一個定時器將運行每1000毫秒的計時器,它會重複60次(然後停止工作)。這顯然不是你所追求的。如果我理解正確的話,你想有一個計時器數到60,然後重置爲0。所以,我們要做的是:

myTimer: Timer = new Timer(1000); 

是所有你需要的構造函數。但是現在你需要添加一些東西,在計時器滴答60次後重置定時器爲0。對您的count變量使用支票。像這樣:

if (myTimer.currentCount >= count) 
{ 
    myTimer.reset(); 
} 

我從來沒有這樣做,但它看起來應該工作。然後,您可以讓您的計時器文本字段更新每個計時器事件,類似於您設置的方式。