Просмотр полной версии : Программное изменение цвета линии без ее перерисовки. Это возможно?
Добрго времени суток.
Есть програмно нарисованая внутри контейнера movieClip линия.
Возможно ли изменить ее цвет не перерисовывая ее?
С уважением. Ворон.
Psycho Tiger
06.09.2007, 17:50
Можно =)
mc=createEmptyMovieClip("mc",1);
mc.lineStyle(2,"0x0000FF",100);
mc.moveTo(random(Stage.width),random(Stage.height));
mc.lineTo(random(Stage.width),random(Stage.height));
var my_color:Color = new Color(mc);
_root.onMouseDown=function(){
my_color.setRGB(0xFF0000);
}
Рисуем линию, в пустом созданом мувиклипе, после создаем экземпляр класса color - my_color и говорим ему, что мы будем менять клип мс.
После нажатия мышки, меняем его цвет красный методом setRGB.
Спасибо вам огромное при огромное!
Я таки дико извиняюсь, а толщину линии менять можно без перерисовывания последней?
В хелпе по аналогии с вышенаписаным пытался что то найти - не нашел...
Можно изменять параметры мувиклипа, в котором нарисована линия.
Можно. Только вот с примером Tiger'a у меня чего-то не получилось её менять. Попробуй нарисовать прямую горизонтальную линию в мувике, увеличить его _height и повернуть (_rotation)
Я таки дико извиняюсь, а толщину линии менять можно без перерисовывания последней?
В хелпе по аналогии с вышенаписаным пытался что то найти - не нашел...
Только если клипу фильтр приделать, но это совсем нехорошо. Что мешает перерисовать?
2Combo - а если кривая?
2Combo - а если кривая?
Кстати, есть один жестокий вариант. Делается несколько копий мувика-линии и ставятся на пару пикселей выше-ниже-правее-левее оригинала. :away:
пс. но поскольку мувиклипы едят много памяти, лучше сделать в мувике-линии битмапу и копировать/вставлять в неё тем же образом собственное содержимое.
Psycho Tiger
07.09.2007, 13:57
combo, то есть по твоему проще для цп и памяти нарисовать 2 прямые, сдвинутые от оригинала, чем перерисовать оригинал?
Щас попробую сделать програмно меняющиеся ширина...
P.S>Не думаю что у меня получиться...
Нет, я же пишу: нужно обыграть вариант с копированием пикселей из оригинала-в-оригинал. Линия будет утолщаться... Хотя, возможно и нет. При вставке пикселей в битмапу, её содержимое вроде стирается, даже если она имела прозрачный фон... так ведь?
пс. а давайте устроим конкурс на самую сложную технологию утолщения линий без ихней перерисовки? :)
Mr. Fixit
07.09.2007, 16:18
а не легче тогда использовать фильтры?
Psycho Tiger
я бы посоветовал использовать класс ColorTransform
Мдя.
Да никих проблем с отрисовкой нет.
Просто пишется небольшой редактор на флеше...
И хотелось бы что бы он "бегал" максимально "шустро".
Вот и спрашиваю на всякий случай.
P.S. Извращений можно придумать много разных... Но зачем. Можно прямые из квадратных мувиков генерировать. А мувики потом размывать с помощью фильтра. Сглаживание однако!..
2Mr. Fixit: а ColorTransform позволяет менять толщину линии?
ColorTransform позволяет менять толщину линии? Нет конечно. Это просто замена для Color - этот нынче не в моде. Перерисовывайте.
Простите, а почему не в моде?
ColorTransform быстрее работает или в чем тут дело?
Простите, а почему не в моде?
ColorTransform быстрее работает или в чем тут дело?
Потому что открываем хелп по слову Color и видим слово "deprecated" Что это значит дословно, затруднюсь ответить, но что-то вроде "фу".
Psycho Tiger
08.09.2007, 09:54
А вдруг у человека 7 флэш, а не 8+? :))
Спасибо вам большое за ликбез.
P.S. Может быть я ошибусь, кажется где то я этот "deprecated" встречал - это случайно не признак того что в дальнейших версиях функция может перестать поддерживаться?
deprecated означает «устаревший». В AS3 уже нет Color.
Lingvo:
deprecate [ ] 1) протестовать, выступать против, резко осуждать, возражать
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.