2014-08-31 31 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