![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Aug 2006
Сообщений: 134
|
Есть мувиклип, в котором находится некая фигура с контуром и заливкой. Вот как можно изменить цвет только заливки, не трогая контур? Если юзать такой метод, то естественно меняется цвет всей фигуры, вместе с контуром:
И по пути еще вопрос. Стоит Strict mode. А почему если я не указываю тип переменной clr, то Flash не выдает никаких ошибок? Или он ее выдаст только если я попытаюсь этой переменной присвоить что-нить отличное от объекта ColorTransform?
__________________
я только учусь... Последний раз редактировалось ambuddy; 26.05.2009 в 01:22. |
|
|||||
|
Регистрация: May 2007
Сообщений: 116
|
сделать заливку вложенным MovieClip и применять к нему ColorTransform сколько угодно. Или програмно очистить мувиклип и програмно же нарисовать в него фигуру с нужной заливкой, но это при условии если у вас контур не слишком сложный.
|
|
|||||
|
Регистрация: Aug 2006
Сообщений: 134
|
Не совсем понял. У меня внутри мувиклипа есть только объект Shape, который как раз и состоит из контура и заливки, цвет которой необходимо изменять. У класса Shape я не нашел никаких больше свойств и методов кроме graphics, на котором рисовать. Но контур у меня сложный, его программно не нарисовать, т.е. это не круг и не квадрат...
Вообще задача состоит в закрашивании по клику разных контуров. Возможно я вообще не с того конца начал?
__________________
я только учусь... Последний раз редактировалось ambuddy; 26.05.2009 в 15:40. |
|
|||||
|
>>есть только объект Shape, который как раз и состоит из контура и заливки..
вот и предлагалось разбить их на два шейпа, в одном контур, а в другом заливка.. еще можно срисовать это добро в битмап, а перекрашивать floodFill'ом - по клику будет самое то.. |
|
|||||
|
Регистрация: Aug 2006
Сообщений: 134
|
Т.е. в исходнике это сделать? Или можно программно? Как я понял, у Shape нету чайлдов, в независимости от того, че там нарисовано...
__________________
я только учусь... |
|
|||||
|
Регистрация: Aug 2007
Сообщений: 467
|
Перечитайте(желательно даже несколько раз) данные специально для вас подсказки и напишите что вам не понятно.
__________________
Лучше быть умным и иногда делать глупости, чем глупым и постоянно умничать! |
|
|||||
|
Регистрация: Aug 2006
Сообщений: 134
|
Я и пишу: разбить их на два шейпа, в одном контур, а в другом заливка - это надо сделать в моем исходнике или можно программно?
__________________
я только учусь... |
|
|||||
|
Регистрация: May 2007
Сообщений: 116
|
Короче у вас должен быть дисплайобджект состоящий из 2-ух других - в одном контур, в другом заливка. Или вот проще - клип, у него 2 чилда. В первый хоть руками, хоть программно рисуем контур, во второй (те же методы) - заливку. Ну и когда нужно применяем colorTransform или чем вы пользуетесь ко второму клипу в котором заливка.
|
|
|||||
|
Регистрация: Aug 2006
Сообщений: 134
|
Ну в общем так я и подумал. Просто думал, может возможно программно разделить контур и заливку в одном Shape. Похоже нельзя
![]()
__________________
я только учусь... |
|
|||||
|
Регистрация: May 2009
Сообщений: 3
|
В книге "Сборник рецептов..." описан следующий метод создания изображения с использованием маски, при этом видимой остается только маскированная часть изображения.
Добавлено через 1 минуту package { import flash.display.Sprite; import flash.display.Loader; import flash.net.URLRequest; public class spriteDrag extends Sprite { public function spriteDrag() { var loader:Loader = new Loader(); loader.load(new URLRequest("image.jpg")); addChild(loader); var maskSprite:Sprite = new Sprite(); maskSprite.graphics.lineStyle(); maskSprite.graphics.beginFill(0xFFFFFF); maskSprite.graphics.drawCircle(0, 0, 50); maskSprite.graphics.endFill(); loader.mask = maskSprite; addChild(maskSprite); maskSprite.startDrag(true); } } } Добавлено через 2 минуты Т.е. можно повторно не применять "сложные" методы отрисовки к объекту содержащему заливку, а залить только прямоугольник описывающий "сложную" фигуру. |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:41. |
|
|
« Предыдущая тема | Следующая тема » |
|
|