论坛中有几个关于此的问题,但我无法得到我需要的好答案。
我正在使用 Canvas 和 Javascript,我想在游戏打开后立即预加载一些图像。我举了一个我想要构建的方法的例子(但没有奏效)
我有 3 个文件:“main.html”在其中声明了画布(此示例中只有一个),我尝试加载图像,“ImagePreloader.js”在其中预加载所有图像,“Variables.js”在其中我有我的变量。
任何人都可以帮我解决这个图像预加载方法,或者建议我一个可行的方法吗?我认为图像没有加载,因为我没有使用 onLoad() 函数,我在目前阅读的教程中无法理解(我知道如何将它应用于图像,但不应用于图像数组)
主.html:
<!DOCTYPE HTML>
<html>
<body>
<canvas id="myCanvas" width="800" height="600"></canvas>
<script type="text/javascript" src="Variables.js"></script>
<script type="text/javascript" src="ImagePreloader.js"></script>
<script>
// Basic canvas info
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
// Draw one of the images. Somehow it doesn't work :(
context.drawImage(imageArray[3], x, y, width, height);
</script>
</body>
</html>
ImagePreloader.js
// This should preload the images in imageArray[i] with 0 <= i <= 5 ... right?
function preloader()
{
for(var i=0; i<5; i++)
{
imageArray[i].src=images[i];
}
}
变量.js
// array of sources of my images
images = new Array();
images[0]="img1.jpg"
images[1]="img2.jpg"
images[2]="img3.jpg"
images[3]="img4.jpg"
images[4]="img5.jpg"
// Stuff to draw the image
var x = 50;
var y = 50;
var width = 256;
var height = 256;
// Is this actually an array of images?
imageArray = new Image();
提前致谢!