Показать сообщение отдельно
Старый 05.02.2004, 03:50
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 2  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
вторая функция не работает из-за того что тип данных у нас НЕ трехбайтовый - а значит смещение влево не удалит самые большие разряды числа, которые по задумке должны были бы стереться при выходе за рамки размеров типа...
(color << 8) >> 16; // это фигня

хотя мысль была верная :)

Код:
function decolorRGB(color) {
	var colorArray = new Array();
	var rem = color;
	colorArray[0] = rem >> 16;
	rem -= colorArray[0] << 16;
	colorArray[1] = rem >> 8;
	rem -= colorArray[1] << 8;
	colorArray[2] = rem;
	return colorArray;
}
trace(decolorRGB(0xFFFFFF));
если надо в хексовом виде вывести обязательно - пиши функцию перевода из десятичной системы в хексы :) флэш все числа выдает только в десятичной, к сожалению..


Последний раз редактировалось Nox Noctis; 05.02.2004 в 04:03.