Дзен-трансгуманист,
я про кэш скрипта
var imgCache = loaded[type.bg];
if (!imgCache) {
var img = new Image();
img.src = type.bg;
img.onload = function () {
drawImg.call(this, x, y, width, height);
};
loaded[type.bg] = {
obj: img,
loaded: false
};
img = null;
}
else {
if (imgCache.loaded)
ctx.drawImage(imgCache.obj, x, y, width, height);
else {
if (!imgCache.sub) imgCache.sub = [];
imgCache.sub.push(function () {
ctx.drawImage(imgCache.obj, x, y, width, height);
});
}
}
function drawImg(x,y,width, height) {
loaded[type.bg].loaded = true;
console.log(this);
ctx.drawImage(this, x, y, width, height);
var sub = loaded[type.bg].sub;
for (var i = 0; i < sub.length; i++) sub[i]();
};
работает так:
-если картинки нет в кэше то создать и добавить ее туда свойство ,loaded = false;
- если картинка не загружена , но есть в кэше то в свойство sub (подписка) добавляется функция которая вызовется после загрузки
- если картинка есть в кэше и загружена просто от рисовать