【问题标题】:"Snooze"-like function in Javascript to trigger event at a later timeJavascript 中类似“贪睡”的函数,用于稍后触发事件
【发布时间】:2014-10-25 00:48:42
【问题描述】:

这个问题可能已经讨论过了,但我找不到我要找的东西。

我正在使用 HTML+JS 开发 Adob​​e Edge Animate。这是一个完整的 JS 问题,所以我在这里发布它。我写了一些代码让对话框出现在一天中的特定时间。对话有两个按钮:“立即播放视频”和“10 分钟后提醒我”

代码如下:

function updateClock() {
    var d = new Date(); // current date
    var m = d.getMinutes();
    var h = d.getHours();

    console.log(h, ":", m);

    // call this function again in 1000ms
    sym.updateClock = setTimeout(updateClock, 1000);

    if (h == 9 && m == 0) { //at 9hrs 00 min 

        //run the dialogue for the morning pause
        sym.play(1000);
    } else {
        sym.stop(1000);
    }
}

updateClock(); // initial call

然后我必须绑定贪睡按钮,这样我的条件语句就会增加 10 分钟。我知道我必须添加某种“计数”变量,但我不知道该怎么做。

(function(symbolName) {
      Symbol.bindElementAction(compId, symbolName, "${_snoze_btn}", "click", function(sym, e) {

      }

【问题讨论】:

  • 您不想只用 10 分钟的毫秒来调用 setTimeout 吗? 60万?

标签: javascript function time adobe-edge


【解决方案1】:

很确定你只是想要这个 -

(function(symbolName) {
  Symbol.bindElementAction(compId, symbolName, "${_snoze_btn}", "click", function(sym, e) {
    // remind again again in 10 minutes
    popupPlayOrSnoozeDialogTimer = setTimeout(popupPlayOrSnoozeDialogTimer, 600000);
  });
}())

如果您想在当前超时时间上增加 10 分钟,直到再次调用该函数,请查看 this answer 或查看 new Date().valueOf()

【讨论】:

  • 嗨!好吧,这行代码没有做任何事情(据我所知)。通过按下Snooze按钮,我应该也可以“sym.play(1000) 10分钟后),但是那行不是条件,它只设置了10分钟的超时时间。我可以添加一个形式为“如果 PlayOrSnoozeDialogTimer = True,则播放 1000" ?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-25
  • 2013-05-31
  • 2023-04-09
  • 2018-11-07
  • 2018-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多