Actionscript 3: цветовые эффекты в DisplayObject

У меня есть DisplayObject (пусть это будет Sprite).

Что мне нужно, так это сделать контент под ним черно-белым (только в его границах). Какие-либо предложения?

Спасибо.


person Timofei Davydik    schedule 18.04.2011    source источник
comment
Напишите фильтр пиксельного бендера, чтобы сделать это. :) gotoandlearn.com/play.php?id=83   -  person    schedule 18.04.2011


Ответы (2)


Вы можете захватить сцену под ним, обрезать прямоугольник спрайта, который вы хотите использовать, обесцветить растровое изображение (с помощью colormatrixfilter или кода анимации из ответа @chris) и addChildAt(bitmap, 0) внутри спрайта в качестве фона.

Затем надейтесь, что внизу ничего не изменится, потому что тогда вам придется делать все это снова, чтобы отразить эти изменения на черно-белом фоне.

Я не пробовал это сам, но это может сработать.

person frankhermes    schedule 18.04.2011
comment
Обрезано растровое изображение, использован ColorMatrixFilter, добавлено растровое изображение => работает отлично, спасибо! :) - person Timofei Davydik; 19.04.2011

Скачайте TweenMax (по моему мнению, лучшая платформа для анимации во Flash).

http://www.greensock.com/tweenmax/

Затем все, что вам нужно сделать, это импортировать его и добавить следующее:

import com.greensock.*; 
import com.greensock.easing.*;

TweenMax.to(mc, 1, {colorMatrixFilter:{colorize:0x000000, amount:0.5, saturation:0}});

Это изменит mc на черно-белое в течение 1 секунды, вы, конечно, можете изменить его на 0 для мгновенного черно-белого.

person Chris    schedule 18.04.2011
comment
Это работает, но это не совсем то, что мне нужно... Мне нужно сделать ч/б все только под мой спрайт - person Timofei Davydik; 18.04.2011