На форуме есть несколько вопросов, но я не мог получить хороший ответ за то, что мне нужно.Предварительная загрузка изображений в Javascript? Без jQuery
Я вхожу в Canvas и Javascript, и я хочу предварительно загрузить некоторые изображения, как только откроется игра. Я сделал пример метода, который хотел построить (и не работал)
У меня есть 3 файла: «main.html», где объявлен холст (есть только один в этом примере), и я пытаюсь для загрузки изображения «ImagePreloader.js», где я предварительно загружаю все изображения и «Variables.js», где у меня есть переменные.
Может ли кто-нибудь помочь мне с этим предпродажным способом изображения или предложить мне жизнеспособный? Я думаю, что изображение не загружается, потому что я не использую функцию onLoad(), которую я не мог понять в учебниках, которые я читал до сих пор (я знаю, как применять его к изображению, но не к массиву изображений)
main.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];
}
}
Variables.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();
Спасибо заранее!
В этом примере я не могу использовать imageObject вне этой функции ... или я понимаю неправильную область в JavaScript? – CookieGuy
Да, ты прав. В этом примере показано, что делает «onload» и как его использовать для прелоадера, который работает, и это то, что вы просили. Остальная часть вашего кода зависит от того, где вы хотите его взять. Если вам нужны переменные в другой области, определите и используйте их соответственно. Имейте в виду, что никто здесь не закодирует ваш сайт для вас. И если вам нужно узнать о масштабах в Javascript, я бы посоветовал вам взять одну из нескольких хороших книг Javascript. Но, снова глядя на ваш вопрос: вы спросили, как закодировать рабочий прелоадер в JS, и вы его получили. Теперь возьмите этот код и * используйте силу *! –
@CookieGuy Добавил ** EDIT **, чтобы немного помочь вам в следующем вопросе. –