Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.08.2008, 12:51
Division вне форума Посмотреть профиль Отправить личное сообщение для Division Найти все сообщения от Division
  № 1  
Ответить с цитированием
Division
 
Аватар для Division

Регистрация: Jul 2008
Адрес: Украина, Херсон
Сообщений: 635
Отправить сообщение для Division с помощью ICQ
По умолчанию Маска и эффекты(фильтры?)

Привет. Мне нужно сделать галерею. Загрузку и прокрутку картинок я уже сделал, теперь нужно навести красоту. Пример того что должно получится я прикрепил. Как видно из рисунка, картинки возле стрелочек вроде как исчезают в белом фоне. Как это можно реализовать? Маска? Альфаканал как-то можно в маску впихнуть? Или каким образом можно сделать такой эффект? Ещё видно что у картинок закругленные края. Это тоже маской делается?
Дальше, мне нужно чтобы картинки были какбы "серые", а при наведении мышки становильсь нормального цвета. Как это лучше сделать? У меня была идея просто ложить сверху полупрозрачную картинку и менять её прозрачность при наведении мышки. Может для этого существуют какие-то фильтры?

Помогите пожалуйста, я не особо силен в этих дизайнерских изысках. Хотелось бы максимально подробное описание. Может есть какие-то статьи?
Изображения
 
__________________
while(1) {}


Последний раз редактировалось Division; 05.08.2008 в 12:54.
Старый 05.08.2008, 13:17
crazyone вне форума Посмотреть профиль Отправить личное сообщение для crazyone Найти все сообщения от crazyone
  № 2  
Ответить с цитированием
crazyone
 
Аватар для crazyone

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Цитата:
Сообщение от Division Посмотреть сообщение
Как видно из рисунка, картинки возле стрелочек вроде как исчезают в белом фоне. Как это можно реализовать? Маска? Альфаканал как-то можно в маску впихнуть? Или каким образом можно сделать такой эффект?
Градиентом от белого непрозрачного до белого прозрачного по краям.

Цитата:
Сообщение от Division Посмотреть сообщение
Ещё видно что у картинок закругленные края. Это тоже маской делается?
Это маской.

Цитата:
Сообщение от Division Посмотреть сообщение
Дальше, мне нужно чтобы картинки были какбы "серые", а при наведении мышки становильсь нормального цвета. Как это лучше сделать? У меня была идея просто ложить сверху полупрозрачную картинку и менять её прозрачность при наведении мышки. Может для этого существуют какие-то фильтры?
ColorMatrixFilter

Цитата:
Сообщение от Division Посмотреть сообщение
Помогите пожалуйста, я не особо силен в этих дизайнерских изысках. Хотелось бы максимально подробное описание. Может есть какие-то статьи?
Может и есть. Хотя не знаю, зачем тут статьи, нужно просто брать и делать. Вам для этой задачи нужно знать только как работают градиент, маски и ColorMatrixFilter.

Старый 05.08.2008, 13:19
__ant вне форума Посмотреть профиль Отправить личное сообщение для __ant Найти все сообщения от __ant
  № 3  
Ответить с цитированием
__ant

Регистрация: Aug 2007
Адрес: Москва
Сообщений: 56
Использовать градиентную маску. И свойство cacheAsBitmap = true у маски и маскируемого объекта.

Старый 05.08.2008, 13:24
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 4  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Картинки станут серыми.
Код:
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);

Старый 05.08.2008, 13:51
Division вне форума Посмотреть профиль Отправить личное сообщение для Division Найти все сообщения от Division
  № 5  
Ответить с цитированием
Division
 
Аватар для Division

Регистрация: Jul 2008
Адрес: Украина, Херсон
Сообщений: 635
Отправить сообщение для Division с помощью ICQ
Всем спасибо (:
__________________
while(1) {}

Старый 05.08.2008, 17:14
Alex_beginner вне форума Посмотреть профиль Отправить личное сообщение для Alex_beginner Найти все сообщения от Alex_beginner
  № 6  
Ответить с цитированием
Alex_beginner
 
Аватар для Alex_beginner

Регистрация: 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.
__________________
Случайность, господа, это знаете ли непознанная необходимость.

Старый 05.08.2008, 17:21
Division вне форума Посмотреть профиль Отправить личное сообщение для Division Найти все сообщения от Division
  № 7  
Ответить с цитированием
Division
 
Аватар для Division

Регистрация: Jul 2008
Адрес: Украина, Херсон
Сообщений: 635
Отправить сообщение для Division с помощью ICQ
http://www.noregret.org/tutor/filters2/#2
Да, это мы уже знаем...
__________________
while(1) {}

Старый 05.08.2008, 17:36
Alex_beginner вне форума Посмотреть профиль Отправить личное сообщение для Alex_beginner Найти все сообщения от Alex_beginner
  № 8  
Ответить с цитированием
Alex_beginner
 
Аватар для Alex_beginner

Регистрация: May 2008
Сообщений: 476
Цитата:
Сообщение от Division Посмотреть сообщение
http://www.noregret.org/tutor/filters2/#2
Да, это мы уже знаем...
Чего же более...?
__________________
Случайность, господа, это знаете ли непознанная необходимость.

Старый 07.08.2008, 00:23
Division вне форума Посмотреть профиль Отправить личное сообщение для Division Найти все сообщения от Division
  № 9  
Ответить с цитированием
Division
 
Аватар для Division

Регистрация: Jul 2008
Адрес: Украина, Херсон
Сообщений: 635
Отправить сообщение для Division с помощью ICQ
Внесу небольшие поправки, может кому-то пригодится
Цитата:
Сообщение от Волгоградец
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]);
Картинки то станут серыми, но видимо это не совсем корректно.
Наткнулся на сайт:
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]);
Зная это можно легко делать анимацию перехода из grayscale в нормальные цвета и наоборот.
Вот код, может кому пригодится:
Код:
	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);		
	}
zerokoef изменяется от 0 до 1.
Если 1 - изображение grayscale. Чем ближе к 0 - тем оно "цветнее".
__________________
while(1) {}


Последний раз редактировалось Division; 07.08.2008 в 00:32.
Старый 07.08.2008, 00:41
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 10  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
С ума сойти.
Код:
import flash.filters.ColorMatrixFilter;
var myColorMatrix_filter:ColorMatrixFilter = new ColorMatrixFilter([0.3, 0.59, 0.11, 0, 0, 0.3, 0.59, 0.11, 0, 0, 0.3, 0.59, 0.11, 0, 0, 0, 0, 0, 1, 0]);
my_mc.filters = [myColorMatrix_filter];
__________________
Reality.getBounds(this);

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:22.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:22.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.