0
我用來加載兩個圖像的代碼(注意,一個圖像是7MB(我知道 - 我會稍後修復它))。畫布圖像沒有繪圖?
var loaded = 0;
var img1 = new Image();
var img2 = new Image();
img1.onload = function(){ both() };
img2.onload = function(){ both() };
img1.src = 'map.png';
img2.src = 'ovl.png';
function both() {
loaded++
console.log(loaded);
if (loaded == 2) {
console.log("LOADED");
resizeCanvas();
console.log("RESIZED");
}
}
function resizeCanvas() {
//resize code
drawStuff();
}
function drawStuff() {
console.log("DRAWSTART");
ctx.save();
ctx.setTransform(1,0,0,1,0,0);
ctx.clearRect(0,0,canvas.width,canvas.height);
ctx.fillStyle="#868f9c";
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.restore();
ctx.drawImage(img1, 0,0);
ctx.drawImage(img2, 0,0);
console.log("DRAWED");
}
正如所料,控制檯輸出是;
(index):28 1
(index):28 2
(index):30 LOADED
(index):81 DRAWSTART
(index):90 DRAWEND
(index):64 RESIZED
但是,圖像是無處可尋,大部分時間。有時他們出現在30秒後,但沒有其他功能的工作(我也有一些平移/縮放的東西)。
請注意,如果我註釋掉ctx.drawImage(img[1,2], 0,0);
之一,它的工作原理完全正常。這似乎是畫兩個圖像只是不工作...
聲音很奇怪,drawImage是同步的,所以在實際繪製它之前,您不應該在控制檯中獲取DRAWEND。您使用哪個瀏覽器? – Kaiido
@Kaiido Chrome。 – user1768788