Имеется следующий код:
function FadeOff(canvas, path, mode) {
var context = canvas.getContext("2d");
var image = new Image();
image.src = path;
image.onload = function() {
var al = 1;
var TimerID = window.setInterval(function() {
if(mode == "STRETCH")
context.drawImage(image, 0, 0, _size, _size);
if(mode == "ORIGINAL")
context.drawImage(image, 0, 0);
al -= 0.05;
putDebugMsg(round(al));
context.globalAlpha = al;
if(al <= 0.1) clearInterval(TimerID);
}, 50);
}
}
Проблема в том, что эффект не работает. Т.е. таймер тикает, цикл выполняется, но картинка не обновляется. Если верить сообщениям, выводимым через putDebugMsg(), от переменная изменяется, и изменяется правильно. Более того - обратный эффект FadeIn работает абсолютно правильно. Вот его код:
case "FADE-IN":
al = 0;
var TimerID = window.setInterval(function() {
printImage(canvas, image, mode, round(al));
al += 0.05;
if(al >= 1) clearInterval(TimerID);
}, 50);
Всё просто и логично. Почему же обратный эффект так себя ведёт? Спасибо!