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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.06.2006, 22:58
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 21  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Нету комментариев в стиле JavaDoc, если не знаешь что такое то пишутся они так
Код:
/**
 * Descriotion goes here
 *
 * @usage                        some example of usage
 * @param    paramName           Type of param, decription
 * @return    type               Type,decription
 */
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 12.06.2006, 23:47
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 22  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Оригинал?
Код:
/*****************************************************
*
*	Peter Hall 2002
*	www.peterjoel.com
*
*	HSB conversion methods for the Color object
*
*	myCol.setHSB({H:hue, S:sat, B:bri})
*	myCol.getHSB()
*		- returns {H:hue, S:sat, B:bri}
*
*	Static methods:
*
*	Color.RGB_to_HSB(0xRRGGBB)
*		- returns {H:hue, S:sat, B:bri}
*	Color.HSB_to_RGB({H:hue, S:sat, B:bri})
*		- returns 0xRRGGBB
*
*	The colour-space conversion is based purely on
*	my own interpretation and intuitive notion of the
*	colour spaces. These methods may produce results
*	which vary slightly from conversions carried out
*	by different graphical software that you may be
*	used to.
*
*   If this script enables you or your company to make
*	significant financial gain, you might like to make
*	a contribution to show your appreciation. Please
*   see my site for more information.
*
******************************************************/


Color.prototype.setHSB = function(colHSB){
	var hue = (colHSB.H == null) ? 0 : (360+colHSB.H)%360;
	var sat = (colHSB.S == null) ? 100 : colHSB.S;
	var bri = (colHSB.B == null) ? 100 : colHSB.B;
	this.setRGB(Color.HSB_to_RGB({H:hue,S:sat,B:bri}));
}

Color.prototype.getHSB = function(){
	return Color.RGB_to_HSB(this.getRGB());
}

Color.RGB_to_HSB = function(colRGB){

	var red = (colRGB&0xFF0000)>>16;
	var gre = (colRGB&0x00FF00)>>8;
	var blu = colRGB&0x0000FF;

	var max = Math.max(red,Math.max(gre,blu));
	var min = Math.min(red,Math.min(gre,blu));

	var colHSB = {}
	colHSB.B = Math.round(max*100/255);

	if(max==min){ // if grey
		colHSB.S = 0;
		colHSB.H = 0;
	}else{
		colHSB.S = Math.round(100*(max-min)/max);
		// find hue
		var hue;
		var tmpR = (max-red)/(max-min);
		var tmpG = (max-gre)/(max-min);
		var tmpB = (max-blu)/(max-min);
		if(red==max){
			hue = tmpB - tmpG;
		}else if(gre==max){
			hue = 2 + tmpR - tmpB;
		}else if(blu==max){
			hue = 4 + tmpG - tmpR;
		}
		colHSB.H = (Math.round(hue*60) + 360)%360;
	}

	return colHSB;

}

Color.HSB_to_RGB = function(colHSB){
	var sat = colHSB.S;
	var bri = colHSB.B;

	var red, gre, blu;
	// if grey don't bother doing any more
	if(sat==0){
		red = bri;
		gre = bri;
		blu = bri;
	}else{

		var hue = (colHSB.H+360)%360;
		var hue2 = Math.floor(hue/60);

		var dif = (hue%60)/60;
		var mid1 = bri*(100-sat*dif)/100;
		var mid2 = bri*(100-sat*(1-dif))/100;
		var min = bri*(100-sat)/100;

		if(hue2 == 0){
			red = bri;
			gre = mid2;
			blu = min;
		}else if(hue2 == 1){
			red = mid1;
			gre = bri;
			blu = min;
		}else if(hue2 == 2){
			red = min;
			gre = bri;
			blu = mid2;
		}else if(hue2 == 3){
			red = min;
			gre = mid1;
			blu = bri;
		}else if(hue2 == 4){
			red = mid2;
			gre = min;
			blu = bri;
		}else{
			red = bri;
			gre = min;
			blu = mid1;
		}
	}
	return (Math.round(red*255/100)<<16 | Math.round(gre*255/100) <<8 | Math.round(blu*255/100));
}
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 13.06.2006, 00:27
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 23  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
нет - этот круче
__________________
Хороший отдых - половина работы.

Старый 13.06.2006, 14:42
bbexp вне форума Посмотреть профиль Отправить личное сообщение для bbexp Посетить домашнюю страницу bbexp Найти все сообщения от bbexp
  № 24  
Ответить с цитированием
bbexp
 
Аватар для bbexp

Регистрация: May 2006
Адрес: Город О
Сообщений: 169
Не знаю, насколько нужны точные вычисления цвета, но просто затемнить или высветлить - по моему не так уж и сложно.
Когда то решал подобную задачу но в пределах RGB - без классов и прочего (извините, если не модно))


Код:
function deRGB(colour:Number):Object  {
        var rr:Number = (colour & 0xFF0000) >> 16;
	var gg:Number = (colour & 0x00FF00) >> 8;
	var bb:Number = colour & 0x0000FF;
	return {R:rr,G:gg,B:bb}
}

var color:Number = 0xFF0000;

var colors:Object = deRGB(color);
			var mr:Number = Math.floor(colors.R/3);
			var mg:Number = Math.floor(colors.G/3);
			var mb:Number = Math.floor(colors.B/3);
			var darkerColor:Number = (mr << 16) + (mg << 8) + mb;


Конечно, коды уже приведенные здесь, безусловно круче и техничнее )) Но помоему решают несколько другие задачи.
__________________
Работа * Работы * О работе


Последний раз редактировалось bbexp; 13.06.2006 в 14:44.
Старый 13.06.2006, 15:08
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 25  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
нет они решают именно те задачи, но и еще и дрегие заодно, например с этим классом совсем нетрудно "сдвинуть цвет по спектру" (поменять hue) или поменять насыщенность
__________________
Хороший отдых - половина работы.

Старый 13.06.2006, 18:48
teka вне форума Посмотреть профиль Отправить личное сообщение для teka Найти все сообщения от teka
  № 26  
Ответить с цитированием
teka
[+1.3 03.08.07]
 
Аватар для teka

Регистрация: Nov 2005
Адрес: moscow
Сообщений: 26
По умолчанию RGB to LAB

Цитата:
Сообщение от iNils
Причем тут это? Надо цвет RGB сначала перегнать в LAB, потом изменить значение L, и обратно перегнать RGB.
Смысл конвертации я понял, но как можно это сделать? Поискал по нету инфу, но толком ничего.

Старый 13.06.2006, 18:50
teka вне форума Посмотреть профиль Отправить личное сообщение для teka Найти все сообщения от teka
  № 27  
Ответить с цитированием
teka
[+1.3 03.08.07]
 
Аватар для teka

Регистрация: Nov 2005
Адрес: moscow
Сообщений: 26
Кривое-то решение я нашел на скорую руку. Задаю вторым цветом черный либо белый (в зависимости от оттенка второго цвета, который мне нужен) и выношу его "начало" подальше от заливаемой области. Получается эдакая имитация :-)

Старый 13.06.2006, 19:02
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 28  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от teka
Смысл конвертации я понял, но как можно это сделать? Поискал по нету инфу, но толком ничего.
Чуть по позже время будет, я тебе постараюсь написать.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

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

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


 


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


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