javascript onload image!完成

时间:2011-12-05 03:30:09

标签: javascript

在ubuntu 11.10上的Firefox 8.0中,虽然draw为false,但仍会调用onload函数img.complete。我设法用setTimeout黑客来解决它,但它并不漂亮 我在设置img.onload之前尝试设置img.src。虽然我总是这样img.complete为真,但img.width为零,img.src也为空,所以它不起作用。
任何想法如何正确实现?

        var draw=function(img,ctx,x,y)
        { if(!img.complete)
            {   setTimeout(function(){draw(img,ctx,x,y);},50);
            }
            else
            {
                ctx.drawImage(img,x,y); 
            }
        }
        for(i=0;i<9;i++)
        {   img=new Image();
            img.src="/media/"+url[i];
            img.onload=(draw)(img,ctx,tile.x*offset[i].x,tile.y*offset[i].y);
        }   

2 个答案:

答案 0 :(得分:3)

Firefox中的complete属性存在问题。一旦它是true,它就总是 true(即使您更改了图像)。

我通过测试新的Image对象来解决它。

答案 1 :(得分:-1)

每个.complete的新图片都不起作用。

尝试检查img.width是否大于零。