Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 11.03.2007, 00:52
Llex3D вне форума Посмотреть профиль Отправить личное сообщение для Llex3D Найти все сообщения от Llex3D
  № 10  
Llex3D
 
Аватар для Llex3D

Регистрация: Oct 2004
Сообщений: 149
Всячески пытаются свои классы дать человеку в руки...
Вот, самый простой код, взятый с учебника:

Код:
function RGBtoHSB (rgb:Number)
{
	var R = (rgb&0xff0000)>>16;
	var G = (rgb&0xff00)>>8;
	var B = (rgb&0xff);
	
	var Br = Math.max(Math.max(R,G),B);
	var minVal = Math.min(Math.min(R,G),B);
	var delta = Br - minVal;
	
	if ( Br == 0 ) { S = 0 } else { S = delta/Br*100; }
	if ( S == 0) { H = 0 } else if (R == Br) { H = 60*(G-B)/delta } else if ( G == Br ) { H = 120+60*(B-R)/delta } else {
															   H = 240+60*(R-G)/delta;}
	if ( H < 0) { H +=360 };
	return ([Math.round(H), Math.round(S), Math.round(Br/255*100)])
}
		
function HSBtoRGB(H, S, Br)
{		
	Br = Br/100*255;
	if ( S == 0) { 
		R = G = B = Br 
	} else {
		var resH = H/60-Math.floor(H/60);
		var bot = (Br*(1-S/100));
		var dec = (Br*(1-(S*resH)/100));
		var inc = (Br*(1-(S*(1-resH)/100)));
		
		switch (Math.floor(H/60)){
			case 0:	R = Br;	 G = inc; B = bot;	break;
			case 1:	R = dec; G = Br;  B = bot;	break;
			case 2:	R = bot; G = Br;  B = inc;	break;
			case 3:	R = bot; G = dec; B = Br;	break;
			case 4:	R = inc; G = bot; B = Br;	break;
			case 5:	R = Br;  G = bot; B = dec;	break;
		}
	}
	return Math.round(R)<<16|Math.round(G)<<8|Math.round(B);
}
Выполняешь следующее
Код:
HSBColor =  RGBtoHSB(0х2C9100) // HSBColor становится масивом
                                              // HSBColor[0] - Hue - тон ( тон цвета)
                                              // HSBColor[1] - Saturation - насыщенность (%)
                                              // HSBColor[2] - Brightnes, а вот это нам интересно, увеличивая или уменьшая этот параметр, мы увеличиваем или уменьшаем яркость цвета (%)

changeBrightnessOn = -10 // уменьшим яркость на 10%
myMcColor = new Cоlor (my_mc)
myMcColor.setRGB(HSBtoRGB(HSBColor[0], HSBColor[1], HSBColor[2]+changeBrightnessOn))
Вот и всего-то делов...
Эта схема перевода стандартная наработка, если хочешь, напиши себе универсальный клас и используй его на здоровье

Создать новую тему   Часовой пояс GMT +4, время: 07:44.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 07:44.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.