为什么我不能使用javascript函数在html画布上绘制多个图像?

时间:2011-02-16 02:28:21

标签: javascript html5 canvas

我有一个像这样的javascript函数:

function drawImage(canvas, image_source, dx, dy) {
  image = new Image();
  image.src = image_source;  
  image.onload = function() {
    c=canvas.getContext("2d");
    c.drawImage(image,dx,dy,100,100);
  }
}

当我连续两次调用此函数时,例如:

drawImage(canvas, "foo.jpg", 0, 0);
drawImage(canvas, "bar.jpg", 0 ,100);

栏被画两次,一次是0,一次是100 如果我切换顺序以便最后调用foo,则foo会被绘制两次。

我尝试使用数组作为图像,如“c.drawImage(images [loaded ++],dx,dy,100,100”和两个图像分别绘制,但它们的顺序是随机的。

有没有办法使用这样的函数在画布上绘制图像?

1 个答案:

答案 0 :(得分:7)

尝试更改:

image = new Image();

为:

var image = new Image();

目前,您正在全局范围内设置“image”,然后可能在加载(不会同步发生)之前重写其onload处理程序。