我制作了一个应用程序画布。每次调用draw ()函数时,都会在画布中绘制多个图像。问题是,对于Opera,它不起作用。Onload函数并不总是有效的。
function draw(){
ctx.clearRect (0, 0, canvas.width, canvas.height);
var img = new Image();
img.src = srcvolets;
img.onload = function(){
ctx.drawImage(img, 0, 0,canvas.width,canvas.height);
if(srccouleur!=null){
var img2 = new Image();
img2.src = 'images/couleurs/'+volets+'/'+srccouleur+'.png';
img2.onload = function(){
ctx.drawImage(img2, 0, 0,canvas.width,canvas.height);
if(srcsculpture!=null){
var img3 = new Image();
img3.src = cheminsculpt+srcsculpture;
img3.onload = function(){
if(volets=='furno'){
ctx.drawImage(img3, 175, 235);
}else{
ctx.drawImage(img3, 175, 242);
}
}
}
}}}}谢谢。(对不起我的英语,我会说法语)
发布于 2011-12-07 10:37:26
我认为这与图像被缓存,以及onload在设置之前触发有关。
在设置src之前,您可能需要尝试设置onload。参见this article about the problem。
https://stackoverflow.com/questions/8030619
复制相似问题