Проблемы onload () холст с оперой - PullRequest
1 голос
/ 07 ноября 2011

Я делаю холст приложения. Каждый раз, когда я вызываю функцию draw (), на холсте рисуется несколько изображений. Проблема в том, что с Opera это не работает. Функция загрузки не всегда работает.

    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 Ответ

2 голосов
/ 07 декабря 2011

Я думаю, что это связано с кэшированием изображений и запуском onload до его установки.

Возможно, вам придется попробовать установить onload перед установкой src. См. эту статью о проблеме .

...