【发布时间】:2010-03-12 11:28:14
【问题描述】:
我有一个包含多个 <canvas> 元素的页面。
我将画布 ID 和数据数组传递给一个函数,该函数然后获取画布信息并将数据传递给 draw() 函数,该函数依次处理给定数据并将结果绘制到画布上。到目前为止,一切顺利。
示例数据数组;
$(function() {
setup($("#canvas-1"), [[110,110,100],
[180,180,50],
[220,280,80]]);
setup($("#canvas-2"), [[110,110,100],
[180,180,50],
[220,280,80]]);
});
设置函数;
function setup(canvas, data) {
ctx = canvas[0].getContext('2d');
var i = data.length;
var dimensions = {
w : canvas.innerWidth(),
h : canvas.innerHeight()
};
draw(dimensions, data, i);
}
这非常有效。 draw() 运行并填充每个画布。
但是 - 我需要为画布设置动画。一旦我替换了上面示例的第 8 行;
draw(dimensions, data, i);
与
setInterval( function() { draw(dimensions, data, i); }, 33 );
它停止工作,只绘制最后一个画布(其他画布保持空白)。
我对 javascript 和 canvas 都是新手,如果这是一个明显的问题,我很抱歉,我仍然在摸索。非常感谢正确方向的指导!谢谢。
【问题讨论】:
-
不是画布专家,在我看来,全球 ctx 可能是罪魁祸首。
标签: javascript jquery html canvas