![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+1 14.08.08]
[+1 20.08.08] |
хочу обесцветить мувик. программно.
для этого, я так понимаю, в filters добавляется ColorMatrixFilter. только какую матрицу ему писать я просто не представляю =((( это не так очевидно, как с Colortransform =(((
__________________
~ Never trouble trouble till trouble troubles you! |
|
|||||
|
Ветеран форума
Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
|
Обесцветить == сделать чёрно-белой?
|
|
|||||
|
[+1 14.08.08]
[+1 20.08.08] |
да, как в теме указано - насыщение цветом в 0
__________________
~ Never trouble trouble till trouble troubles you! |
|
|||||
|
Ветеран форума
Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
|
import flash.filters.ColorMatrixFilter;
import mx.events.EventDispatcher;
import mx.utils.Delegate;
class com.screamge.effects.Tint {
public var addEventListener:Function;
private var dispatchEvent:Function;
private var __mc:MovieClip;
private var __des:Number = 0.01;
private var __desaturation:Number = 0;
public function Tint(mc:MovieClip) {
EventDispatcher.initialize(this);
__mc = mc;
tinter ();
}
public function set des (num:Number):Void {
__des = num;
}
public function Back ():Void {
__mc.onEnterFrame = Delegate.create (this, this.BackTint);
}
private function BackTint ():Void {
__desaturation -= __des;
__mc.filters = new Array(getDesaturationFilter(__desaturation));
if (__desaturation <= 0){
delete __mc.onEnterFrame;
dispatchEvent ({type:'onFinish'});
}
}
private function getDesaturationFilter(t:Number):ColorMatrixFilter {
t = t ? t : 1;
var r:Number = 0.212671;
var g:Number = 0.715160;
var b:Number = 0.072169;
return new ColorMatrixFilter([t*r+1-t, t*g, t*b, 0, 0, t*r, t*g+1-t, t*b, 0, 0, t*r, t*g, t*b+1-t, 0, 0, 0, 0, 0, 1, 0]);
}
private function tinter():Void {
__mc.onEnterFrame = Delegate.create (this, this.onEnterHandle);
}
private function onEnterHandle ():Void {
__desaturation += __des;
__mc.filters = new Array(getDesaturationFilter(__desaturation));
if (__desaturation >= 1){
delete __mc.onEnterFrame;
dispatchEvent ({type:'onFinish'});
}
}
}
![]() |
|
|||||
|
[+1 14.08.08]
[+1 20.08.08] |
разобрался.
все классно, только, блин, ну откуда ты взял вот эти числа??
__________________
~ Never trouble trouble till trouble troubles you! |
|
|||||
|
Ветеран форума
Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
|
Полегче спроси что-нибудь
Это переделанный под класс фрейм код, писал давно так что линк на оригинал врядли найду. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ну в целом для обесцвечивания достаточно этого
__________________
Reality.getBounds(this); |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:13. |
|
|
« Предыдущая тема | Следующая тема » |
|
|