![]() |
|
||||||||||
|
|||||
|
Привет. Мне нужно сделать галерею. Загрузку и прокрутку картинок я уже сделал, теперь нужно навести красоту. Пример того что должно получится я прикрепил. Как видно из рисунка, картинки возле стрелочек вроде как исчезают в белом фоне. Как это можно реализовать? Маска? Альфаканал как-то можно в маску впихнуть? Или каким образом можно сделать такой эффект? Ещё видно что у картинок закругленные края. Это тоже маской делается?
Дальше, мне нужно чтобы картинки были какбы "серые", а при наведении мышки становильсь нормального цвета. Как это лучше сделать? У меня была идея просто ложить сверху полупрозрачную картинку и менять её прозрачность при наведении мышки. Может для этого существуют какие-то фильтры? Помогите пожалуйста, я не особо силен в этих дизайнерских изысках. Хотелось бы максимально подробное описание. Может есть какие-то статьи?
__________________
while(1) {} Последний раз редактировалось Division; 05.08.2008 в 12:54. |
|
|||||
|
Цитата:
Это маской. Цитата:
Может и есть. Хотя не знаю, зачем тут статьи, нужно просто брать и делать. Вам для этой задачи нужно знать только как работают градиент, маски и ColorMatrixFilter. |
|
|||||
|
Регистрация: Aug 2007
Адрес: Москва
Сообщений: 56
|
Использовать градиентную маску. И свойство cacheAsBitmap = true у маски и маскируемого объекта.
|
|
|||||
|
Картинки станут серыми.
import flash.filters.BitmapFilter;
import flash.filters.ColorMatrixFilter;
var mc:MovieClip = this.attachMovie("mc", "mc", 1, {_x:Stage.width/2, _y:Stage.height/2});
mc.cacheAsBitmap = true;
var matrix:Array = new Array();
matrix = matrix.concat([0.4, 0.4, 0.4, 0, 0]);
matrix = matrix.concat([0.4, 0.4, 0.4, 0, 0]);
matrix = matrix.concat([0.4, 0.4, 0.4, 0, 0]);
matrix = matrix.concat([0, 0, 0, 1, 0]);
var filter:BitmapFilter = new ColorMatrixFilter(matrix);
mc.filters = new Array(filter);
|
|
|||||
|
Всем спасибо (:
__________________
while(1) {} |
|
|||||
|
Регистрация: May 2008
Сообщений: 476
|
ColorMatrixFilter: трансформации цвета
Трансформации цвета клипа, возможные с помощью данного фильтра, аналогичны трансформациям, которые мы раньше (до 8 флэша) задавали с помощью класса Color и метода setTransform(). Трансформация цветов пикселей с помощью матрицы размерностью 4х5 не является изобретением Макромедии — этот метод давно используется в компьютерной графике. Подробное описание механизма можно легко найти в сети, поэтому я опишу процесс только в общих чертах, но чуть подробнее, чем это сделано в хэлпе. ColorMatrixFilter имеет один-единственный параметр — матрицу трансформации цветов. Выглядит она следующим образом: R G B A + R N0 N1 N2 N3 N4 G N5 N6 N7 N8 N9 B N10 N11 N12 N13 N14 A N15 N16 N17 N18 N19 Общая формула расчета цвета с трансформацией такова: новый_красный = N0*красный + N1*зелёный + N2*синий + N3*альфа +N4 новый_зелёный = N5*красный + N6*зелёный + N7*синий + N8*альфа +N9 новый_синий = N10*красный + N11*зелёный + N12*синий + N13*альфа +N14 новая_альфа = N15*красный + N16*зелёный + N17*синий + N18*альфа +N19 Где "красный", "синий", "зелёный", "альфа" — это исходные значения цветов пикселя перед трансформацией. При применении фильтра к клипу, каждый пиксель изображения подвергается трансформации. Пятая колонка в матрице (N4, N9, N14, N19) — это сдивиги цветов и альфа канала. Числа в этой колонке просто прибавляются к исходным значениям цвета соответствующих каналов. В пятой колонке обычно содержатся значения от -255 до 255. В остальных колонках обычно содержатся значения от -1 до 1. В принципе можно задавать значения, выходящие за эти пределы, но это не дает никаких сочетаний результирующего цвета, отличных от тех, которые можно получить при нормальных значениях. Внимание! Параметр matrix фильтра ColorMatrixFilter НЕ является двумерным массивом. Это одномерный массив, содержащий строки матрицы трансформации по порядку сверху вниз. Именно поэтому в матрице трансформации элементы пронумерованы построчно. В восьмом флэше кроме класса ColorMatrixFilter для трансформаций цвета существет также класс flash.geom.ColorTransform, применяющийся в сочетании c классом Transform и свойством transform мувипклипов. То есть, можно использовать связку ColorTransform+Transform+MovieClip.transform, возможно это будет удобнее для простых трансформаций цвета. В любом случае, функциональность этой связки для трансформаций цвета не шире, чем функциональность фильтра ColorMatrixFilter.
__________________
Случайность, господа, это знаете ли непознанная необходимость. |
|
|||||
|
http://www.noregret.org/tutor/filters2/#2
Да, это мы уже знаем...
__________________
while(1) {} |
|
|||||
|
Регистрация: May 2008
Сообщений: 476
|
Цитата:
![]()
__________________
Случайность, господа, это знаете ли непознанная необходимость. |
|
|||||
|
Внесу небольшие поправки, может кому-то пригодится
Цитата:
Наткнулся на сайт: http://www.microsoft.com/Rus/Msdn/Ac.../Data/439.mspx Оттуда видно что в grayscale цвет расчитывается как GrayScale = (77 * R + 150 * G + 28 * B)/ 255 То есть матрица должна принять такой вид: matrix = matrix.concat([77/255, 150/255, 25/255, 0, 0]); matrix = matrix.concat([77/255, 150/255, 25/255, 0, 0]); matrix = matrix.concat([77/255, 150/255, 25/255, 0, 0]); matrix = matrix.concat([0, 0, 0, 1, 0]); Вот код, может кому пригодится: private function MakeGray() {
var matrix:Array = new Array();
var r = 77/255;
var g = 150/255;
var b = 25/255;
matrix = matrix.concat([r*zerokoef+1-zerokoef, g*zerokoef, b*zerokoef, 0, 0]);
matrix = matrix.concat([r*zerokoef, g*zerokoef+1-zerokoef, b*zerokoef, 0, 0]);
matrix = matrix.concat([r*zerokoef, g*zerokoef, b*zerokoef+1-zerokoef, 0, 0]);
matrix = matrix.concat([0, 0, 0, 1, 0]);
var filter:BitmapFilter = new ColorMatrixFilter(matrix);
this.filters = new Array(filter);
}
Если 1 - изображение grayscale. Чем ближе к 0 - тем оно "цветнее".
__________________
while(1) {} Последний раз редактировалось Division; 07.08.2008 в 00:32. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
С ума сойти.
__________________
Reality.getBounds(this); |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:22. |
|
|
« Предыдущая тема | Следующая тема » |
|
|