【发布时间】:2015-08-08 01:20:43
【问题描述】:
在我的 main 函数中,我有以下代码来绘制三个点:
工作:
for (var i = 0; i < 3; i++) {
gl.vertexAttrib3f(vPosition, vertices[i * 2], vertices[i * 2 + 1], 0.0);
gl.drawArrays(gl.POINTS, 1, 1);
}
这会从顶点数组中绘制三个点。
现在,当我使用几乎相同的代码,但使用setTimeout 来延迟循环(这样每个点将相隔三秒绘制)时,什么都没有绘制。我已经输入了console.log 并检查了循环是否确实在运行,只是没有绘制任何内容。
不工作:
for (var i = 0; i < 3; i++) {
setTimeout (function () {
gl.vertexAttrib3f(vPosition, vertices[i], vertices[i + 1], 0.0);
gl.drawArrays(gl.POINTS, i, 1);
gl.clear(gl.COLOR_BUFFER_BIT);
}, 3000 * i );
}
知道为什么这不起作用吗?
【问题讨论】:
标签: javascript webgl