【发布时间】:2014-04-10 09:31:17
【问题描述】:
我尝试在加载每个图像后创建要在画布上显示的图像数组。没有错误,没有平局……
var x=...
var y=...
var canvas = document.getElementById(sCanvasName);
var context = canvas.getContext('2d');
var imageCardObj = [];
//vCards contains the images file names
for (var k=0;k<vCards.length;k++){
imageCardObj[k] = new Image();
var func = function(){
var c = arguments[3];
try{
c.drawImage(arguments[0], arguments[1], arguments[2]);
}catch(e){
alert(e.message)
}
}
imageCardObj[k].onload = func(imageCardObj[k], x, y, context);
imageCardObj[k].src = "res/img/"+vCards[k].trim()+".png";
x+=40;
}
【问题讨论】:
-
这段代码是否在
window.onload-function 中?document.getElementById()可能没有返回画布元素。 -
不,代码在链接调用的函数中。画布没问题 - 我试图在循环外绘制一个 img 并且它有效
-
好的。我看到您创建了一个名为
func的函数,但我没有看到您曾经调用过它。 -
这里:imageCardObj[k].onload = func(imageCardObj[k], x, y, context);
标签: javascript image canvas