使用setTimeout在画布中顺序填充形状
Sequentially filling shapes in canvas using setTimeout
我用一个路线查找器做了一个迷宫应用程序。当它沿着路线行进时,它会调用绘制画布,突出显示途中的每个单元格。然而,最终发生的是,它会阻塞,直到完全完成,然后绘制到画布上。大致如此:
Path.prototype.travelTo (cell) {
this.previous = this.cell;
this.cell = cell;
this.cell.fill = 'yellow';
this.maze.draw();
var choice = findChoice();
this.travelTo(choice);
};
迷宫类跟踪所有细胞,其绘制函数在每个细胞中循环,调用细胞自己的绘制函数。
我做了一个快速的小提琴(http://jsfiddle.net/amctammany/99VVu/)模拟问题。在这里,它通过setTimeout递归地调用自己,从一个单元格移动到下一个单元格。结果是一样的,它会立即填充所有单元格,甚至不需要等待任何时间。
如有任何帮助,我们将不胜感激。
我看了一下您的jsfiddle,首先注意到的是您的setTimeout:
window.setTimeout(fillNext(i + 1), 500);
但也许你想这么做:
window.setTimeout(function() {fillNext(i + 1)}, 500);
您应该将CCD_ 1设置为对CCD_,不使用fillNext(i+1)
的返回值作为window.setTimeout()
的参数
更新下面的行,如下所示。然后你可以看到动画。
"window.setTimeout(fillNext(i + 1), 500);" To "window.setTimeout(fillNext, 100,(i + 1));"
我已经更新了小提琴。你现在可以检查了。
相关文章:
- 如何设置html元素填充的动画
- 如何使用jquery在填充自动完成的值后使文本框只读
- 如何通过ajax刷新JSF填充的javascript变量
- ajax请求的顺序总是不同的
- 按照选项卡索引的顺序循环一个jQuery选择
- 用与线条相同的颜色填充多折线图上的点
- 匹配一个单词,其中候选人可以跨越顺序组(跨度)
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 按顺序添加和删除类
- 使用setTimeout在画布中顺序填充形状
- 使用 JS 填充 HTML 表,数据顺序错误
- 填充路径取决于绘制顺序
- 数组填充顺序错误
- JQuery语法错误,自动填充监听器和keyup触发器在循环和寻找顺序命名的输入
- 按字母顺序排序javascript填充的选择列表
- 根据数组中填充的排序顺序对html进行排序
- 按顺序填充下拉列表
- 在JS中使用共享类动态地按顺序填充图像
- 从XML填充下拉列表-代码执行顺序错误
- 在knockout中使用顺序选项值填充下拉列表,不使用jQuery