2014-08-31 85 views
0

这个问题可能已经讨论过了,但我找不到我期待的内容。Javascript中的“贪睡”式功能,以后再触发事件

我正在使用HTML + JS的Adobe 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分钟,我的条件陈述。我知道我必须添加某种“count”变量,但我不知道如何去做。

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

     } 
+2

你不想只用10分钟的毫秒数来调用setTimeout? 600000? – iabw 2014-08-31 18:19:48

回答

0

敢肯定你只是想这一点 -

(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()

+0

嗨!那么这行代码不会做任何事情(据我所知)。 按下按钮Snooze,我也应该能够在10分钟后“sym.play(1000)”,但该行不是有条件的,它只设置了10分钟的超时时间。我可以在表单中添加条件“如果PlayOrSnoozeDialogTimer = True,那么玩1000”? – JotaSolano 2014-09-02 00:28:31

相关问题