1

我制作了一个应用程序画布。每次调用draw()函数,都会在canvas中绘制多张图片。问题是 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);
                        }                           
                    }
                }
}}}}

谢谢你。(对不起我的英语,我说法语)

4

1 回答 1

2

我认为这与缓存的图像以及onload设置之前的触发有关。

onload您可能需要在设置之前尝试设置src。有关该问题,请参阅这篇文章

于 2011-12-07T02:37:26.327 回答