![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Добавлено через 8 минут А может и правда непонятно... Может Вы имели ввиду под паттерном – паттерн обводки, в смысле например черный пиксель - белый пиксель - серый пиксель - белый пиксель, и картинка как бы будет обведена сначала черным контуром, потом белым, потом серым и снова белым? То есть многослойная обводка. Тогда не так. Тогда надо последовательно накладывать глоу всех этих цветов. Для более сложного паттерна, не однопиксельного а скажем орнамента боюсь решения нет, да и совершенно непонятно как его вообще позиционировать чтобы рисунок был перпендикулярен контуру объекта в любой точке.
__________________
Reality.getBounds(this); |
|
|||||
|
Цитата:
Цитата:
Ведь заготовленный паттерн должен как-то поворачиваться в зависимости от вектора движения. Скорее всего придется преобразовывать glow в путь и потом по нему как-то выладывать с элементами случайности заготовки паттерна. По типу как у silin паровозик катится по пути.Добавлено через 1 минуту По-моему задача слишком сложна для меня. Ведь внешний край нужно сделать ещё и непрерывным в некоторых случаях.
__________________
In Code We Trust |
|
|||||
|
а много их будет? картинок
__________________
adobe AS3 manual |
|
|||||
|
Цитата:
Добавлено через 7 минут Оказывается и в Flash CS4 это есть - Decorative Drawing называется.
__________________
In Code We Trust |
|
|||||
|
Вот, накидал на коленке.
static public function generate (texture:DisplayObject, thickness:Number = 4):Bitmap { texture.filters = [new GlowFilter(0xFFFFFF, 1, thickness, thickness, 30, thickness)]; var matrix:Matrix = new Matrix( ); matrix.translate(thickness, thickness); var bmd:BitmapData = new BitmapData(texture.width * 2, texture.height * 2, true, 0); bmd.draw(texture, matrix); var bm:Bitmap = new Bitmap(bmd); bm.cacheAsBitmap = true; var mx:Matrix = new Matrix(); mx.createGradientBox(texture.width + thickness * 2, texture.height + thickness * 2, Math.PI / 2); var shape:Sprite = new Sprite( ); shape.graphics.beginGradientFill("linear", [0xDDDDDD, 0x999999], [1, 1], [0, 255], mx); shape.graphics.drawRect(0, 0, texture.width + thickness * 2, texture.height + thickness * 2); shape.graphics.endFill( ); shape.cacheAsBitmap = true; shape.addChild(bm); shape.mask = bm; texture.filters = null; bmd = new BitmapData(shape.width, shape.height, true, 0); bmd.draw(shape); bmd.draw(texture, matrix); bm = new Bitmap(bmd.clone( )); bmd.dispose( ); bmd = null; return bm; }
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь! |
|
|||||
|
stweet, спасибо за пример. Но он даже не создает равномерного градиента от кромки картинки до края заливки. Он вообще делает градиент всей новой плашки. Конечно, пригодится. Но до решения поставленной задачи слишком далеко.
__________________
In Code We Trust |
|
|||||
|
Вы про тень от самой картинки?
Так добавьте ещё один фильтр, в чём сложность? Добавлено через 18 минут [IMG]http://s019.***********/i625/1203/c3/ec11504f8972.jpg[/IMG] Что тут не так как у вас?)))
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь! |
|
|||||
|
stweet, не про тень. Я картинку привел, только как один частный случай требуемого эффекта, который значительно шире по возможностям. Выше все подробно несколько раз описал что требуется.
Во-вторых, на картинке не тень, а скорее bevel.
__________________
In Code We Trust |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:45. |
|
|
« Предыдущая тема | Следующая тема » |
|
|