0

我一直在尝试通过 SetInterval 使用 Pebble.JS 在 Pebble 上的应用程序中实现秒表功能。我知道不建议这样做,但我现在不需要那么高的精度。

秒表将启动,但我无法停止秒表。我进行了设置,以便通过按选择它应该移动到新屏幕。

wind.on('click', 'select', function(e){
    var wind2 = new UI.Window();
    var textfield = new UI.Text({
      position: new Vector2(0, 0),
      size: new Vector2(144, 30),
      font: 'gothic-24-bold',
      text: 'Timer Started!',
      textAlign: 'center'
    });
    wind2.add(textfield);
    var textfield2 = new UI.Text({
       position: new Vector2(0, 60),
       size: new Vector2(144, 30),
       font: 'gothic-24-bold',
       text: 'PlaceHolder',
       textAlign: 'center'
     });
    wind2.add(textfield2);
    wind2.show();
    var timerID = 0;
    window.clearInterval(timerID);
    timerID = window.setInterval(function(){clockt(textfield2)},1000);

    wind2.on('click', 'select', function(e){
        timerID.clearInterval();
        var finaltime = convert(time1);
        seconds = pad(finaltime[0], 2);
        minutes = pad(finaltime[1], 2);
        var strfinaltime = "Total Time: \n" + hours + ":" + minutes + ":" + seconds +"\n" + time1
        var wind3 = new UI.Window();
        var textfield3 = new UI.Text({
            position: new Vector2(0, 50),
            size: new Vector2(144, 30),
            font: 'gothic-24-bold',
            text: strfinaltime,
            textAlign: 'center'
        });
        wind3.add(textfield3);
        wind3.show();
        time1 = 0;
    });
  });
4

1 回答 1

0

我想我找到了问题所在,即使你不清楚你所说的不停止是什么意思。您以两种不同的方式调用 clearInterval 。尝试将第二个更改为您执行第一个的方式。对于该部分,您的代码现在应该如下所示:

var timerID = 0;
window.clearInterval(timerID);
timerID = window.setInterval(function(){clockt(textfield2)},1000);

wind2.on('click', 'select', function(e){
    window.clearInterval(timerID);  // was previously timerID.clearInterval();
    var finaltime = convert(time1);
于 2015-07-31T18:12:12.463 回答