PDA

Просмотр полной версии : Инверсия цвета - возможно ли ?


Skubent
07.11.2005, 14:40
Задача - есть статичный символ ( то бишь если надо - хоть MovieClip, хоть Graphic). Нарисован в двух цветах - в синем и в красном.
Символ расположен на белом фоне.

Поверх этого символа идет отрисовка lineTo всяких.
Очень хочется, чтобы при отрисовке красным цветом по красной части символа линия меняла цвет на зеленый, а при отрисовке по синему - на желтый.

MaxLife
07.11.2005, 19:14
Как вариант - через hitTest отловить, над каким символом находишься - синим или красным, и поменять цвет.

MaxLife
07.11.2005, 19:21
Либо попробуй рисовать в прозрачном муве, который лежит над твоей фигурой, а муву задай Blend Invert. (Fl8)

MaxLife
07.11.2005, 19:24
difference, соврал

Skubent
07.11.2005, 19:26
hitTest ? Я вроде програмно рисую ?
А вот про BlendInvert счас подумаю...

MaxLife
07.11.2005, 19:30
Именно что программно. Оформить картинку в виде двух роликов - один синий, другой красный, и проверять у них хиттест в режиме проверки формы

Skubent
07.11.2005, 19:33
Именно что программно. Оформить картинку в виде двух роликов - один синий, другой красный, и проверять у них хиттест в режиме проверки формы]

А общую идею ?
Есть символ box, который есть квадрат синего цвета 100x100 + квадрат красного цвета 100x100, итого размер символа - 200x100.
Делаю
box.moveTo(0,0);
box.lineTo(200,100);
Куда тут hitTest прикручивать ?
И в общем случае, геометрия размещения красных и синих частей значительно сложнее ?

Skubent
07.11.2005, 19:34
Гхм, да, Fl8 по техническим причинам недоступен, так что difference отпадает...

MaxLife
07.11.2005, 19:37
тут да, может не помочь. Другое дело, если будешь рисовать небольшими кусочками. Запаздывание, конечно, тоже возможно. Можно, в принципе, использовать отрисованное как маску. Если программно рисованная линия может быть так использована. Ролик с линией имеется в виду.

motor4ik
07.11.2005, 19:37
че за бредятина...вы че ребят, у тя так понимаю два мува, над ними еще мув в котором и идет рисование программное, ты рисуешь по координатам, отслеживай координату х , если они у тя горизонтально стоят (квадраты синий и красный) если x< такой то то коорд, lineStyle ставь зеленый, как x> тойже коорд lineStyle ставь желтый, смысл тот :D

MaxLife
07.11.2005, 19:42
А нарисуй сложную картинку. И представь себе. Тут только линию на части рвать придётся, и то без гарантии, что дискретности хватит. Не по пикселу же отрисовывать.

motor4ik
07.11.2005, 19:46
фигассе...какраз по пикселу и нужно :D я так понимаю в реальном времени картина должна рисоваться, а следовательно сами понимаете , делаем так как я сказал, других вариантов нет :)

Skubent
07.11.2005, 19:55
Мдя, по пикселу отрисовывать - дело тонкое...
Так и запишем - нереально, буду извращаться как-нить... Или ТЗ переписывать :)

user356
07.11.2005, 20:18
Создай один слой - нормальная картинка,
Второй слой - маска - в ней и будешь рисовать программно,
И третий слой, замаскированный, картинка с инверсией цветов.

user356
07.11.2005, 20:54
2 нюанса:
1)Зничит, рисовать надо с заливкой: beginFill(0x0000FF, 30); и т.д.
2)mc lines(e меня в исходнике) не должен быть пуст изначально.

Исходник на fl8? но все там на AS от Fl7

seifip
07.11.2005, 22:01
Universaljnyj script... kladi na ljuboj movie clip i ljubujsja :D

Skubent
08.11.2005, 11:37
seifip, инвертить цвета у клипа целиком я умею, мне бы кусками его...
user356, не кушает этот исходник MX. А идею с двумя слоями и инвертированными масками я уже реализовал, но хочется элегантнее решения 6)