Я занимаюсь холстом. И я немного что-то потерял.Функция предварительной загрузки изображений - нужно нарисовать их сейчас, но как?
У меня есть эта функция:
function preloadimages(arr) {
var newimages = []
var arr = (typeof arr != "object") ? [arr] : arr
for (var i = 0; i < arr.length; i++) {
newimages[i] = new Image()
newimages[i].src = arr[i]
}
}
И я называю это так:
preloadimages(['images/background.png', 'images/hero.png', 'images/monster.png']);
Единственная проблема, я не знаю, как потом сделать их позже.
Если бы я был поджимать одно изображение внутри моих JS я бы сказал:
var bgOk = false;
var bg = new Image();
bg.onload = function() {
bgOk = true;
};
bg.src = "images/background.png";
, а затем дальше вниз, когда я хотел это обращается, я бы сказал:
if (bgOk) {
context.drawImage(bg, 0, 0);
}
И это было бы что. Проблема в том, что я создал класс preloader, я действительно не знаю, как теперь вызывать только изображение, которое я хочу сейчас рисовать, или даже как реализовать идею bgOk, чтобы, если она загрузилась нормально, я могу ее нарисовать, и если нет, оставьте это в покое.
Может кто-нибудь посоветует мне об этом? Я в основном просто пытаюсь перейти скорее на класс, а не на грязный большой беспорядок, который у меня обычно есть с огромным javascript-файлом, который является уродливым, а не ремонтируемым.
Благодарю вас за то, что нашли время, чтобы написать все это, а также ссылки, которые вы провизировали ded :) Спасибо! –
@DavidG Нет проблем, надеюсь, это поможет. – HJ05
Быстрый вопрос, если вы не возражаете. Как бы я затем нарисовал одно из этих изображений на холсте? У меня есть var context = canvas.createCanvas(); и context.drawImage (bg, 0, 0); ранее –