2017-05-23 100 views
2

圍繞Code.org,我已經成功創建的使用文本(「時鐘」)和15分鐘的倒計時「開始」按鈕。 這是一段代碼:製作一個15分鐘的倒計時器與buttons-我一直玩的javascript

onEvent("start", "click", timing); 
function timing() { 
    var countdown = 900; 
var i = setInterval(function() { 
    countdown = countdown - 1; 
    setText("clock", countdown/60); 
    if(countdown === 0) { 
    clearInterval(i); 
playSound("sound://default.mp3", false); 
    } 
} 
, 1000); 

它工作正常,只是它顯示了第二個爲十進制的(如15.91,15.88),而不是15.59,15.58等。我想不出怎麼改。創建另一個數組?我不知道。 我也想提出一個休息和停止,我已經開始按鈕:

onEvent("reset", "click", timingR); 
function timingR() { 
clearInterval (countdown); 
} 
} 
onEvent("stop", "click", timingS); 
function timingS() { 
clearInterval (countdown); 
} 

但他們似乎並不用倒計時陣列工作。 如果您有任何想法,請讓我知道。謝謝。

回答

0

,而不用複製什麼已經回答了這個可以幫助回答你的問題https://stackoverflow.com/a/5698006/8055991

如果你想要去得更深一些,你總是可以創建自己的定時器類,一個例子可以在這裏找到 - https://github.com/shiffman/LearningProcessing/blob/master/chp18_data/example_18_09_Thread/Timer.pde

丹尼爾Shiffman有一個偉大的YouTube系列,如果你剛剛開始,你會發現自己編碼任何你想要的,在沒有時間:-)

0

你是一個偉大的開始在這裏,你是非常接近讓你的代碼在你想要的地方。

首先,要正確顯示時間,你將不得不自己構造一個字符串。你已經想通了,你可以把你的countdown 60獲得剩餘分鐘數,但你也可以使用"modulo" or "remainder" operator (%)獲得的微小這樣離開內秒數:

var minutes = countdown/60; 
var seconds = countdown % 60; 

你然後可以通過這兩個數字與":"像這樣結合在一起創建一個字符串:

var display = minutes + ":" + seconds 

然後設置你的時鐘顯示的文字像

setText("clock", display); 

但是!你會注意到,如果你這樣做,你在分鐘後仍然會得到所有這些醜陋的小數。因此,作爲最後一步,你應該使用Math.floor你分鐘轉換成浮動的整數

var minutes = Math.floor(countdown/60); 

所以你的最終代碼看起來像

countdown = countdown - 1; 
var minutes = Math.floor(countdown/60); 
var seconds = countdown % 60; 
var display = minutes + ":" + seconds; 
setText("clock", display); 
相關問題