具有更改参数的 JavaScript 睡眠函数
javascript sleep function with changing parameters
数组移动只包含我想在画布上绘制的几个移动。 基本上是一个 deltaTime to 睡眠和一个绘制命令。
这根本行不通:(
for (var i=0; i< parsed.moves.length; i++)
{
var e = parsed.moves[i];
setTimeout(function(){drawCmd(context,e)}, e.deltaTime*1000);
//deltaTime are values btn 0-1, the sleep time i need to set btw commands
}
function drawCmd(canvasctx, e)
{
switch(e.type)
{
//case ...
}
}
它什么也没做,甚至没有调用drawCmd函数
您的代码仅通过e.deltaTime*1000
延迟所有drawCmd
,然后一次执行所有i = 10
如果你的意思是"画画和等待,画画和等待",试试这个:
(function loop(i){
var e = parsed.moves[i]; //e at current "i"
if(i< parsed.moves.length){ //if not equal to length
setTimeout(function(){
drawCmd(context,e); //draw in e.deltaTime*1000 milliseconds
loop(++i); //loop again
}, e.deltaTime*1000);
}
}(0)); //start with i=0
您可能
想要检查 deltaTime 的数据类型
setTimeout(function () { }, undefined * 1000); // <- Executes imidiately
setTimeout(function () { }, '1' * 1000); // <- Executes after 1 second
setTimeout(function () { }, 1 * 1000); // <- Executes after 1 second
setTimeout(function () { }, new Date() * 1000); // <- Executes after a long (i.e. 1337852997592 seconds) time
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在全局范围中查找JavaScript函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 如何调用这个匿名 JavaScript 函数
- 通过Ajax将JavaScript函数传递给PHP文件
- 在javascript函数中设置全局变量
- 如何在执行此特定onclick事件时执行JavaScript函数
- 使用javascript函数在页面初始化后加载jquery
- javascript函数同步
- 如何将一个JavaScript函数回调为多个函数
- 在javascript函数中使用php变量
- 代码背后调用一个JavaScript函数的按钮点击-C#
- 将JavaScript函数与HTML分离
- 组合两个javascript函数
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- javascript函数内部的代码用逗号而不是分号分隔
- href属性内的javascript函数
- 使用html表单中的参数调用JavaScript函数
- 分析Javascript函数中的多个对象
- javascript函数的:和=之间的区别