gpt4 book ai didi

javascript - 在 HTML5 canvas 准备就绪时调用函数

转载 作者:搜寻专家 更新时间:2023-10-31 23:00:39 24 4
gpt4 key购买 nike

我将多个 PNG 图像加载到我的 Canvas 上,因此生成 Canvas 需要时间。

我想在 Canvas 加载时显示一个加载图标。如何检查 Canvas 是否正在加载或准备就绪?

HTML:

<canvas id="myCanvas" width="1300" height="800"></canvas>

Javascript:

function buildCanvas(settings){


var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
var ctx = canvas.getContext("2d");

var background = new Image();
background.onload = function() {
context.drawImage(background, 0, 0, 1300, 836);
};
background.src = 'data/skin-army.png';

}

最佳答案

当创建 Canvas 或开始获取图像时,做一些事情来指示用户图像正在加载,如果您还想使用 Canvas 来通知用户图像已加载,请将该逻辑放在 img 中.onload.

找了一张足够大的图片来演示,应该能看到文字的变化。

function buildCanvas(settings){

var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
var ctx = canvas.getContext("2d");
var images = [
'http://www.fmglobal.com/assets/images/library/download/hydraulicslab_1.jpg',
'http://www.fmglobal.com/assets/images/library/download/Fireslope.jpg',
'http://www.fmglobal.com/assets/images/library/download/Firefighter_firetest.jpg',
'http://www.fmglobal.com/assets/images/library/download/rowsprinklers.jpg'
];
var imagesLoading = images.length;

// Image loader.
var loadImage = function(i) {
var img = new Image();
img.onload = function() {
images[i] = img;
--imagesLoading;
// Call the complete callback when all images loaded.
if (imagesLoading === 0) {
workDone();
}
};
img.src = images[i];
};

// Call upon all images loaded.
var workDone = function() {
// Clear canvas
canvas.width = canvas.width;

// Anything you want to notify the user image is Ready.
ctx.fillText("Ready", 100, 130);


var i, iLen = images.length;
for (i = 0; i < iLen; ++i) {
context.drawImage(images[i], 100*i, 0, 100*(i+1), 100);
}
};

// Start to load all images.
var i;
for(i = 0; i < imagesLoading; ++i) {
loadImage(i);
}

// Show image loading. with animation or something else...
ctx.fillText("loading", 100, 130);
}

buildCanvas();
<canvas id="myCanvas" width="500" height="300"></canvas>

关于javascript - 在 HTML5 canvas 准备就绪时调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31299509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com