![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Aug 2002
Сообщений: 3
|
народ, я ламо но учусь.. есть вопрос - как смешивать цвета?
суть проблемы в следующем: у меня набо кнопок, при нажатии на которые я задаю значение переменной _root.MyColor например, нажав на красную кнопку я получаю _root.myColor = 0xFF0000 теперь у меня есть мувик, который я крашу этим цветом mc0.onPress = function() { myColor = new Color(this); myColor.setRGB(_root.myColor); }; и всё у меня хорошо. но... как сделать, чтобы цвета смешивались? те если я выберу сначала 0хFF0000 а потом нажму на кнопку 0хFFFFFF, то как сделать чтобы красный стал светлее?? те что то типа 0xFF9999 ? смешивание не обязательно должно быть правильным.. может нужно просто складывать значения RGB в десятичной системе? заранее признателен! |
|
|||||
|
Регистрация: Mar 2002
Адрес: Питер
Сообщений: 320
|
пробуй
на самом деле е совсем поятно что ты хочешь делать .... если просто светлее тогда тебе подойдет лучше наверное Trasform *за точное название не ручаюсь* (там ещё альфа добавляется) ...... а так.... если просто смешение... то попробуй вычесть одно значение из другого (складывать лучше не стоит .. геморроя много) ....
__________________
вот. |
|
|||||
|
Регистрация: Aug 2002
Сообщений: 3
|
есть линк. чтобы было понятнее, стоит поиграться с красками. мне очень нужно знать как там цвета смешиваются.
http://pbskids.org/sagwa/color/paint/index_paint.html есть идеи? вроде складывать значения RGB не катит. так например красный - r=255 g=0 b=0, а если сложить его с белым (r=o, g=0, b=0) то я не получу более светлого красного.. |
|
|||||
|
Регистрация: Mar 2002
Адрес: Питер
Сообщений: 320
|
там весь прикол в кисточке
а цвета ... я же писал вроде что их по моему лучше вычитать ... так не очень запарно будет .... что касается более белого ... то он будет ближе к FFFFFF а не к 000000 (это черный) .... посмотри исходники ... там вроде что-то было подобное ....
__________________
вот. |
|
|||||
|
меняй просто динамически значения переменной _root.myColor, то есть если у тебя кнопка, то при нажатии на нее присваивай переменной новое значение.
ну а светлее открытый красный при таком способе изменения цвета по моему стать не может, только если ты изменишь альфу, а бэкграунд у тебя при этом белый. Вот если использовать процентные соотношения r, g, b тогда другое дело... Последний раз редактировалось derhab; 17.10.2002 в 13:13. |
|
|||||
|
прошу прощения
)), че то я запарился, альфа здесь не при чем, можно конечно высветлять цвет и так. |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
чтобы осветлить цвет нужно всего лишь пропорционально увеличить значения RR, GG и BB...
чтобы сделать темнее, соответственно, наоборот... типа вот так: (запустить и поелозить мышкой по сцене =) ) rgb = function (obj) {
return (obj.r << 16 | obj.g << 8 | obj.b);
};
tellTarget (a=createEmptyMovieClip("test", 1)) {
lineStyle(100);
moveTo(50, 50);
lineTo(50.15, 50);
col = new Color(this);
control = {r:255, g:0, b:0};
fade = 1;
col.setRGB(_root.rgb(control));
}
a.onMouseMove = function() {
tellTarget (this) {
control.g += fade;
control.b += fade;
col.setRGB(_root.rgb(control));
if (!(control.g%255)) {
fade *= -1;
}
}
};
можно еще извратиться - взять функцию, которая переводит значения цветов из RGB системы в систему HSB - тогда чтобы сделать цвет светлее-темнее нужно будет менять всего один параметр. про HSB смотреть здесь =) если тебе нужно не просто светлее-темнее - то тебе точно нужна система HSB: в радиальной палитре всего один параметр отвечает за оттенок цвета. то есть меняя один-единственный параметр можно получить любой из 16777215 цветов =) Последний раз редактировалось Nox Noctis; 17.10.2002 в 15:40. |
|
|||||
|
Регистрация: Aug 2002
Сообщений: 3
|
это всё прикольно, но тк я ламо то найти применения пока этому ещё не смог.
у меня проблема в том, что мне нужно именно смешивать два цвета. осветление красного это просто пример.. плз глянь сюда - http://pbskids.org/sagwa/color/paint/index_paint.html - мож ты знаешь каким макаром там краски мешаются? те там ты можешь сначала выбрать красный, а потом если нажмёшь на белый, красный начёт светлеть. чтобы получить белый надо нажать на кнопку несколько раз подряд.. плз, посомтри линк... может ты поймёшь о чём я |
![]() |
Часовой пояс GMT +4, время: 12:06. |
|
|
« Предыдущая тема | Следующая тема » |
|
|