Просмотр полной версии : transformObject
Whatsername
09.06.2004, 12:34
colorObject.setTransform(transformObject)
Если свойству transformObject присвоить чрезвычайно высокое значение (например, transformObject.rb = 100000) то задаваемый цвет вычитается полностью. Почему так происходит?
Кстати, если присвоить transformObject.rb еще большее значение, скажем, 135000 - все встает на свои места, и количество цвета обрезается по максимальному значению (255)
Nox Noctis
09.06.2004, 12:52
clr = new Color(mc);
clr.setRGB(0xFFFFFF*1.5);
...какой цвет покажется? как ты думаешь? :)
(а ведь задано значение в полтора раза больше максимального...)
Whatsername
09.06.2004, 14:30
да, настоящий припротивный цвет вместо белого =)
видно я чего-то не догоняю... почитаю еще раз про Color, спасибо =)
Nox Noctis
09.06.2004, 14:41
цвет кодируется шестью байтами RRGGBB
если число больше трехбайтового (больше 16777215 по десятичной системе счисления) - старшие байты просто отбрасываются.
а в трансформе rb gb bb - это по одному байту.. если больше - старшие байты отбрасываются
Whatsername
10.06.2004, 10:35
Спасибо, Нокс,
в принципе, мне понятно, о чем ты говоришь. И, как я понимаю, при 100000 происходит переполнение.. думаю, мне не хватает знаний по архитектуре компьютера, сегодня возьму что-нибудь почитать об этом.
Nox Noctis
10.06.2004, 12:26
сейчас ломает экспериментировать, чтобы убедиться что всё именно так как я сказал :)
в принципе всё зависит только от того как построено преобразование аргументов в методе setTransform класса Color... надо влезть ручками покопаться :)
Whatsername
10.06.2004, 12:55
а чего экспериментировать? Все так и есть - как ты сказал.
Whatsername
10.06.2004, 21:58
нет, не дает мне эта штука покоя
посоветовался с нашим программером на работе - он тоже в непонятках.
я набросал исходник, если у тебя, канеш, есть время попробуй задать значение transformObject.rb 255 (11111111) - все славно, но если задать 255555 (111110011001000011 ) красный уходит в 0. О как
Whatsername
10.06.2004, 21:59
color
clr = new Color(mc);
clr.setRGB(255<<16|0<<8|0); // красный
clr.setRGB(0<<16|255<<8|0); // зелёный
clr.setRGB(0<<16|0<<8|255); // синий
Так, по моему, проще... или нет?
sergwizard
11.06.2004, 02:46
clr = new Color(mc);
clr.setRGB(255<<16|0<<8|0); // красный
clr.setRGB(0<<16|255<<8|0); // зелёный
clr.setRGB(0<<16|0<<8|255); // синий
Но ведь можно и еще проще:
clr = new Color(mc);
clr.setRGB(0xFF0000);//красный
clr.setRGB(0x00FF00);//зеленый
clr.setRGB(0x0000FF);//синий
Но, в принципе я с Dindin(ым) согласен: зачем использовать setTransform там, где можно использовать setRGB()? А setTransform оставить для тех случаев, где происходит именно трансформация цвета. Примерно так.
Серж, просто насколько я понял, чувак бьётся над переводом цветовых кодов из системы в систему. Вот я и попытался намекнуть, что из десятичной в двоичную проще всего переводить побитовым смещением :)
Оригинал написал(а) dm_nev
нет, не дает мне эта штука покоя
посоветовался с нашим программером на работе - он тоже в непонятках.
я набросал исходник, если у тебя, канеш, есть время попробуй задать значение transformObject.rb 255 (11111111) - все славно, но если задать 255555 (111110011001000011 ) красный уходит в 0. О как
11111111 00110111 00110111 - (без пробелов) - цветовой код для 255 55 55.
Ты не учитываешь, что на каждый цвет отводится по одному байту.
Whatsername
11.06.2004, 15:14
please, набирите в моей .swf 255555 и вы присовоете rb значение 255555, но увидите, что фига! - цвет вычитается полностью... 0 (ноль). Никакого смещения красного.
почему?
Вот и все, что меня беспокоит. все.
Whatsername
11.06.2004, 15:57
в текстовом поле :D
ты чё меня разыгрываешь?
Это ты меня разыгрываешь :D в твоём мувике нет ни одного текстового поля :)
Whatsername
11.06.2004, 16:51
Din, открой первую страницу, нажми ctrl + f и введи color.zip
пардон, открыть первую страницу ЧЕГО? Чем дальше - тем путанее :)
Whatsername
11.06.2004, 17:21
ТОПИКА (и с пошлыми розовыми кофточками ТОПИК не имеет ничего общего)
Скачай вот это:
Whatsername
11.06.2004, 18:33
ты о чем :mad: ???
READ THE FU..ING MANUAL!!!
Nox Noctis
11.06.2004, 19:38
господа, не надо грязи.. чакры слипнутся :)
вопрос:
please, набирите в моей .swf 255555 и вы присовоете rb значение 255555, но увидите, что фига! - цвет вычитается полностью... 0 (ноль). Никакого смещения красного.
почему?
Вот и все, что меня беспокоит. все.
ответ:
в принципе всё зависит только от того как построено преобразование аргументов в методе setTransform класса Color...
никто из макромедии вам не обещал, что в этой функции вообще идёт работа с двоичными смещениями, правда? и вообще никто ничего не говорит о том как обрабатываются "неправильные" аргументы.
то что я предположил было бы логично - но видимо работает как всегда :)
Whatsername
11.06.2004, 20:16
спасибо всем... аминь
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.