dar*_*ord 4 html javascript canvas
我想在同一个画布上绘制两个图像。第一张图片是 background.jpg,第二张图片是 photo.jpg。我希望 photo.jpg 总是在另一个之上:
var ctx = document.getElementById("main").getContext("2d");
var background = new Image();
var photo = new Image();
background.onload = function() {
ctx.drawImage(background, 0, 0);
}
photo.onload = function() {
ctx.drawImage(photo, 0, 0);
}
background.src = "background.jpg";
photo.src = "photo.jpg"
Run Code Online (Sandbox Code Playgroud)
我的问题是如何确保照片始终位于顶部。因为 onload 是回调,所以我不能对调用顺序做任何假设。谢谢!
小智 5
将您的图像存储在数组中。无论哪个图像先完成加载,这都将确保保持顺序:
var ctx = document.getElementById("main").getContext("2d");
var background = new Image();
var photo = new Image();
var images = [background, photo]; /// the key
var count = images.length;
background.onload = photo.onload = counter;
background.src = "background.jpg";
photo.src = "photo.jpg"
/// common loader keeping track if loads
function counter() {
count--;
if (count === 0) drawImages();
}
/// is called when all images are loaded
function drawImages() {
for(i = 0; i < images.length; i++)
ctx.drawImage(images[i], 0, 0);
}
Run Code Online (Sandbox Code Playgroud)
(draw 方法假定所有都在位置 0,0 处绘制 - 当然,更改它以满足您的标准)。
| 归档时间: |
|
| 查看次数: |
7049 次 |
| 最近记录: |