![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 55
|
Есть два слоя:
|
|
|||||
|
Регистрация: Jun 2006
Сообщений: 55
|
Хмм... это не то о чем я спрашивал... Метод getPixel возвращает цвет пикселя, а мне его не нужно возвращать, мне его нужно задать. Еще раз объясню. Есть два квадратных мувиклипа, один лежит поверх другого. У нижнего заранее задан цвет (A), верхнему я могу задать любой цвет (B), но у верхнего альфа 30%. Область пересечения этих двух мувиклипов должна иметь цвет C. Как зная A, С и альфу B узнать каким должен быть B?
![]() |
|
|||||
|
BitmapData.getPixel32 (x,y) вернет вам цвет типа 0xFFFFFFFF из него можно попробывать по смещениям убрать цвет А и получите цвет B
__________________
Работаю Последний раз редактировалось Snut; 06.07.2009 в 13:52. |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 55
|
Спасибо за совет, попробовал, но столкнулся с тем, что не могу понять как, например, из 0x0000FF вычесть 0x777777? Я должен вычитать числа друг из друга целиком или каждый компонент RGB в отдельности? Если по отдельности, то что будет результатом разности (0x00 - 0x77)? -0x77?
|
|
|||||
|
Регистрация: Jun 2006
Сообщений: 55
|
0.7*A + 0.3*B = C
0.3*B = C - 0.7*A B = 10*(C - 0.7*A) / 3 Пусть C = 0x0000FF, A = 0xAAAAAA 0xAA * 0.7 = 0x77 0.7*A = 0x777777 (C - 0.7*A) = 0x0000FF - 0x777777 = 0x777788 А вот как теперь 0x777788 умножить на 10 и разделить на 3? Я перевел каждую компоненту цвета в десятичную систему, умножил на 10 и разделил на 3, в результате получил число большее чем 256. После перевода числа обратно в шестнадцатеричную систему, тоже получается трехзначное число... |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 55
|
Понимаю, но хотелось бы получить максимально близкий к заданному цвет.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 21:04. |
|
|
« Предыдущая тема | Следующая тема » |
|
|