Показать сообщение отдельно
Старый 05.02.2004, 02:33
opex вне форума Посмотреть профиль Отправить личное сообщение для opex Найти все сообщения от opex
  № 1  
opex
 
Аватар для opex

Регистрация: Sep 2003
Адрес: Где-то рядом.
Сообщений: 686
Отправить сообщение для opex с помощью ICQ Отправить сообщение для opex с помощью Skype™
По умолчанию Rgb послогам

проблема заключается в том что не получается разделить RGB на три шеснацетиричных числа R , G и B тоесть 0x034FC3 представить ка 0x03,0x4f,0xC3 написал две функции
1 все раотает но слишком грамовски и возврошает стринг
Код:
function decolorRGB(color) {
	colorArray = new Array("0x", "0x", "0x");
	if (color >> 20 == 0) {
		s = "0"+color.toString(16);
	} else {
		s = color.toString(16);
	}
	for (i=0; i<7; i++) {
		if (i == 0 || i == 1) {
			colorArray[0] += s.charAt(i);
		} else if (i == 2 || i == 3) {
			colorArray[1] += s.charAt(i);
		} else if (i == 4 || i == 5) {
			colorArray[2] += s.charAt(i);
		}
	}
	return colorArray;
}
trace(decolorRGB(0x02F453))
2 вообще не работает хотя должно
Код:
function decolorRGB(color) {
	colorArray = new Array();
	colorArray[0] = color >> 16;// смещаем на право  на 16  тоесть получаем  последние 8 бит информации
	colorArray[1] = (color << 8) >> 16;// смешаем влево  на восемь избовляемся от последних 8 бит инфы  и смешаем на право на 16  получаем оставшиеся  8 бит тость сиредину
	colorArray[2] = (color << 16) >> 16;// смешаем  в лево на 16  избвляемся от  16  бит   и смешаем в право на  16 убирая  16 нулей  получаем последние восемь бит 
	return colorArray;
}
trace(decolorRGB(0xFFFFFF));
все череп уже трешит
__________________
Бойтесь китайцев, компы приносящих!