直接調用canvas的 drawImage()方法首次加載時圖片不顯示,解決方案是在Img.onload()方法中繪制圖怀浆。但是如果以后需要不斷的繪制該圖片的時候就會一直調用onload事件怕享,出現(xiàn)圖片一閃一閃的現(xiàn)象执赡,解決方案是根據(jù)Img.complete()方法判斷圖片是否加載完成函筋。如下:
var devBgImg = new Image();
? ? ? ? ? ? devBgImg.src =this.imgUrl;
? ? ? ? ? ? var imgX=this.coodinate.x;
? ? ? ? ? ? var imgY=this.coodinate.y+10;
? ? ? ? ? ? var imgWidth=this.width;
? ? ? ? ? ? var imgHeight=this.height-10;
? ? ? ? ? ? if(devBgImg.complete) { // 如果圖片已經存在于瀏覽器緩存,直接調用回調函數(shù)?
? ? ? ? ? ? ? ? context.drawImage(devBgImg,imgX,imgY,imgWidth,imgHeight);
? ? ? ? ? ? ? ? return; // 直接返回灌诅,不用再處理onload事件?
? ? ? ? ? ? }?
? ? ? ? ? ? devBgImg.onload=function(){
? ? ? ? ? ? ? ? context.drawImage(devBgImg,imgX,imgY,imgWidth,imgHeight);
? ? ? ? ? ? };