Показать сообщение отдельно
  #1 (permalink)  
Старый 16.09.2013, 22:07
Новичок на форуме
Отправить личное сообщение для iRomul Посмотреть профиль Найти все сообщения от iRomul
 
Регистрация: 16.09.2013
Сообщений: 4

Проблема с canvas
Имеется следующий код:
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);

Всё просто и логично. Почему же обратный эффект так себя ведёт? Спасибо!
Ответить с цитированием