![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2009
Сообщений: 7
|
писал плеер для сайта и захотел сделать красивые отражения кнопок)
написал код, который делает копию объекта, отражает, и накладывает на отражение альфа-маску с градиентом (от непрозрачного черного к прозрачному белому). долго мучался, пока не заметил, что для кнопок прозрачность маски как-то криво работает, при этом для мувиклипов нормально.. сделал скрины... ...или маски вообще неприменимы к кнопкам?) дабавлено: кстати пробовал применять к маске не градиент, а Blur.. результат аналогичен Последний раз редактировалось beatstream; 21.04.2009 в 18:32. |
|
|||||
|
... это не к маске, а к картинке: отражение всегда немного темнее оригинала
![]() |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 7
|
2dimarik: спасибо, так и думал *CRAZY*
2ОльгаЮрьевна: да, спасибо) мне не до красоты было, лишь бы разобраться... |
|
|||||
|
.
|
beatstream, обратите внимание на метод draw() класса BitmapData. Вполне вероятно с его помощью можно получить изображение кнопки. Что-то вроде этого
import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Matrix; var bitmapData:BitmapData = new BitmapData(myButton._width, myButton._height, true, 0x00000000); // Flip vertical matrix var matrix:Matrix = new Matrix(1, 0, 0, -1); bitmapData.draw(myButton, matrix, null, 'normal', new Rectangle(0, 0, myButton._width, myButton._height), true); var mc:MovieClip = this.createEmptyMovieClip('reflection', this.getNextHighestDepth() ); mc.attachBitmap(bitmapData, 0); var mask:MovieClip = this.createEmptyMovieClip('mask', this.getNextHighestDepth() ); // Gradient mask. Stolen from Flash Help beginGradientFill example var colors:Array = [0xFF0000, 0x0000FF]; var fillType:String = "radial"; var alphas:Array = [100, 100]; var ratios:Array = [0, 0xFF]; var spreadMethod:String = "reflect"; var interpolationMethod:String = "linearRGB"; var focalPointRatio:Number = 0.9; matrix = new Matrix(); matrix.createGradientBox(100, 100, Math.PI, 0, 0); mask.beginGradientFill(fillType, colors, alphas, ratios, matrix, spreadMethod, interpolationMethod, focalPointRatio); mask.moveTo(0, 0); mask.lineTo(mc._width, 0); mask.lineTo(mc._width, mc._height); mask.lineTo(0, mc._height); mask.lineTo(0, 0); mask.endFill(); mc.setMask(mask); Последний раз редактировалось dimarik; 22.04.2009 в 11:41. |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 7
|
да, уже изучаю)
|
![]() |
![]() |
Часовой пояс GMT +4, время: 10:35. |
|
|
« Предыдущая тема | Следующая тема » |
|
|