Показать сообщение отдельно
Старый 29.01.2016, 13:36
Vlad84 вне форума Посмотреть профиль Отправить личное сообщение для Vlad84 Найти все сообщения от Vlad84
  № 3  
Ответить с цитированием
Vlad84

Регистрация: Jul 2012
Сообщений: 148
Нашел.

Код AS3:
function interpolateColor(fromColor:uint, toColor:uint, progress:Number):uint {
	var q:Number = 1-progress;
	var fromA:uint = (fromColor >> 24) & 0xFF;
	var fromR:uint = (fromColor >> 16) & 0xFF;
	var fromG:uint = (fromColor >>  8) & 0xFF;
	var fromB:uint =  fromColor & 0xFF;
	var toA:uint = (toColor >> 24) & 0xFF;
	var toR:uint = (toColor >> 16) & 0xFF;
	var toG:uint = (toColor >>  8) & 0xFF;
	var toB:uint =  toColor & 0xFF;
	var resultA:uint = fromA*q + toA*progress;
	var resultR:uint = fromR*q + toR*progress;
	var resultG:uint = fromG*q + toG*progress;
	var resultB:uint = fromB*q + toB*progress;
	var resultColor:uint = resultA << 24 | resultR << 16 | resultG << 8 | resultB;
	return resultColor;
}
 
var len:Number = 20;
var step:Number = 1 / len;
for(var i:int = 0; i < len; i++){
	trace(interpolateColor(0x04AA8A, 0xFF2A00, step * i));
}
Параметр progress - это и есть тот промежуточный цвет (число от 0 до 1).
Изображения
 


Последний раз редактировалось Vlad84; 29.01.2016 в 17:18.