2017-05-23 7 views
2

私はCode.orgで遊んでいて、テキスト(「時計」)と「開始」ボタンを使って15分のカウントダウンを作成しました。 これは、コードのセクションです:ボタンで15分のカウントダウンタイマーを作成する - 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.59、15.58などの小数(例えば15.91、15.88)として第2を示して正常に動作します。別の配列を作成しますか?知りません。 私はまた、休憩中に入れて、私はすでに開始している上のボタンを停止したいと思います:

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

をしかし、彼らはカウントダウン配列で動作していないようです。 アイデアがあれば教えてください。ありがとうございます。

答えて

0

すでにこれはあなたの質問は、あなたが少し深く行きたい場合は、常に独自のTimerクラスを作成することができhttps://stackoverflow.com/a/5698006/8055991

に答えることが回答されているものを複製せずに、例がここにあります - https://github.com/shiffman/LearningProcessing/blob/master/chp18_data/example_18_09_Thread/Timer.pde

ダニエル・シフマンはすばらしいyoutubeシリーズを持っています。あなたが始めているのであれば、時間のない隣には何でもコーディングができます:-)

0

あなたはここから素晴らしいスタートを切っています。あなたが望むところにあなたのコードを近づけることができます。

まず、時間を正しく表示するには、自分で文字列を作成する必要があります。あなたはすでにあなたは残り分の数を得るためにあなたのcountdown 60で割ることを考え出しましたが、あなたはまた、このような分以内に左の秒数を取得するために"modulo" or "remainder" operator (%)を使用することができます。

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

ます

var display = minutes + ":" + seconds 

をそして

setText("clock", display); 
01のようなあなたの時計表示のテキストを設定します。そして、このような ":"と一緒に、これらの2つの数値を組み合わせることにより、文字列を作成することができます

ただし、あなたがこれをした場合、あなたはまだ数分後にそれらの醜い小数を得ていることに気付くでしょう。だから、最後のステップとして、あなたはあなたの分を整数に変換するのに浮く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); 
のようになります。
関連する問題