使用JavaScript捕获照片之前延迟或显示动画照片计时器

时间:2013-04-02 13:37:33

标签: javascript timer webcam animated-gif

我创建了各种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);
 },

有人可以帮我解决这个问题吗?

感谢您的回复。

1 个答案:

答案 0 :(得分:1)

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

执行此操作时,实际上调用webcam.show_image,然后将函数结果传递给setTimeout。要将指针传递给函数,你应该这样做

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

此外,我不认为使用动画gif进行文本倒计时是个好主意,你可以在某些DIV中操纵innerHTML。 最后,30000毫秒是30秒,而不是3秒。