2013-04-02 51 views
0

我創建了各種JavaScript函數以從瀏覽器捕獲照片。使用JavaScript功能,我可以成功啓動相機,捕捉照片並預覽,然後可以上傳照片。在使用JavaScript捕捉照片之前延遲或顯示動畫照片計時器

我想集成照片計時器功能。在這裏,一旦我點擊拍照按鈕,它會等待3秒鐘(例如),並會顯示一個動畫計時器(我想加載一個動畫gif文件),倒計時3到1.一旦倒計時完成我想調用拍照功能。

但我無法將此邏輯集成到我的照片捕獲功能中!

我的示例代碼:

var cameraEnabled = false; 
var timer = null; 

$('#takeButton').click(function(){ 

    if(timer != null) 
    { 
     clearTimeout(timer); 
     timer = null; 
    } 
    else 
    { 
     if(!cameraEnabled){ 
      return false; 
     } 
     timer = window.setTimeout(webcam.show_image(), 3000); 
     webcam.freeze(); 
     togglePane(); 
     return false; 
    } 

}); 

我show_image功能是:

show_image:function() 
{ 
    var img = document.createElement("img"); 
    img.src = "countdowntimer.gif"; 
    document.body.appendChild(img); 
}, 

任何人都可以請幫我看這個問題?

高級感謝您的回覆。

+0

這可能不是你的問題,但'setTimeout'需要幾毫秒作爲第二個參數。所以目前它的等待30秒鐘稱爲'webcam.show_image'。 'webcam.show_image()'不應該有括號,我相信它現在正在調用它。 – DickieBoy

回答

1
timer = window.setTimeout(webcam.show_image(), 30000); 

當你這樣做,你實際上調用webcam.show_image,然後將函數的結果傳遞給setTimeout。要通過函數指針你應該做

timer = window.setTimeout(webcam.show_image, 30000); 

另外,我不認爲這是使用gif動畫文本倒計時是一個好主意,你可以操縱的innerHTML在一些DIV。 最後,30000毫秒是30秒,而不是3.

+0

檢查這個小提琴http://jsfiddle.net/s5gUh/1/ – Tommi

+0

嗨Tommi ..感謝我喜歡的代碼..但你能告訴我如何整合拍攝功能,而不使用警報?我的拍攝功能是webcam.freeze();拍攝後,我切換窗格並返回false ..例如:togglePane();返回false; – techhunter

+0

然後只需刪除警報並粘貼webcam.freeze(); togglePane();而不是 – Tommi

相關問題