使用opera发布onload()画布问题

时间:2011-11-06 21:40:55

标签: javascript html5-canvas onload-event

我制作了一个应用程序画布。每次调用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);
                        }                           
                    }
                }
}}}}

谢谢。 (抱歉我的英语,我说法语)

1 个答案:

答案 0 :(得分:2)

我认为这与缓存的图像有关,并且onload在设置之前触发。

在设置onload之前,您可能需要尝试设置src。请参阅this article about the problem