使用按钮 - javascript制作15分钟的倒计时器

时间:2017-05-23 22:23:48

标签: timer setinterval countdown minute code.org

我一直在Code.org玩游戏,我使用文本(“时钟”)和“开始”按钮成功创建了15分钟的倒计时。 这是代码的一部分:

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

但它们似乎不适用于倒计时阵列。 如果您有任何想法,请告诉我。谢谢。

2 个答案:

答案 0 :(得分:0)

如果不重复已经回答的问题,这可能有助于回答您的问题https://stackoverflow.com/a/5698006/8055991

如果你想要更深入一点,你可以随时创建自己的计时器类,这里有一个例子 - https://github.com/shiffman/LearningProcessing/blob/master/chp18_data/example_18_09_Thread/Timer.pde

Daniel Shiffman有一个很棒的youtube系列,如果你刚刚开始,你会发现自己随时都可以编写任何你想要的代码: - )

答案 1 :(得分:0)

您在这里开始了一个很好的开始,而且您非常接近将代码放在您希望的位置。

首先,要正确显示时间,您必须自己构建一个字符串。您已经发现可以将map_keys除以60以获得剩余的分钟数,但您也可以使用"modulo" or "remainder" operator (%)来获取分钟内剩余的秒数,例如这样:

countdown

然后,您可以通过将这两个数字与var minutes = countdown / 60; var seconds = countdown % 60; 组合在一起来创建字符串,如下所示:

":"

然后设置时钟显示的文本,如

var display = minutes + ":" + seconds

然而!如果你这样做,你会注意到你在分钟后仍然得到所有那些丑陋的小数。因此,作为最后一步,您应该使用Math.floor将您的分钟浮动转换为整数:

setText("clock", display);

所以你的最终代码看起来像

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