🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.programy.flash-5
Article #34103

Re: Flash - po najechaniu myszką zmiana koloru

#34103
From: Neo[EZN]
Date: Mon, 16 Apr 2007 15:18
62 lines
3005 bytes
> Zastanawiający jest fakt czemu nie można nadać tego dynamicznie, skoro 
> wszystkie inne filtry działają też przypisane przez ActionScript. 
> Przyglądałem się dzisiaj klasie ColorMatrix która teoretycznie odpowiada 
> za te operacje, ale nie widzę możliwości wykonania takiego efektu, może 
> ktoś podpowie?

Można elegancko zmieniać saturację zdjęcia, napisałem taki skrypcik który to 
demonstruje - wystarczy wklepać to do klatki filmu i wrzucić do library 
obrazek zlinkowany pod nazwą "fot".

import flash.filters.ColorMatrixFilter;
import flash.filters.BitmapFilter;
import flash.display.BitmapData;

_root.createEmptyMovieClip("mc",_root.getNextHighestDepth());
var bd:BitmapData = BitmapData.loadBitmap("fot");
_root.mc.attachBitmap(bd,_root.mc.getNextHighestDepth());

_root.onEnterFrame = function()
{
 zx = _root._xmouse/100;
 zy = 1-zx;
 trace("zx: "+zx+", zy: "+zy);
 var mat:Array = new Array();
  mat= mat.concat([zx, zy, 0, 0, 0]);
  mat= mat.concat([0, 1, 0, 0, 0]);
  mat= mat.concat([0, zy, zx, 0, 0]);
  mat= mat.concat([0, 0, 0, 1, 0]);

 var filtr:BitmapFilter = new ColorMatrixFilter(mat);
 _root.mc.filters = new Array(filtr);
};

Generalnie szarość uzyskuje się poprzez podanie takich samych wartości w 
jednej (lub więcej!) kolumn:

rA,rB,rC,r0
gA,gB,gC,g0
bA,bB,bC,b0
aA,aB,aC,a0

Wystarczy że rA = gA = bA albo rB = gB = bB alborC = gC = bC (wartość równa 
1 = oryginalna jasność) - z tym, że jeśli chcemy aby szarość była brana z 
kanału czerwonego to rA = gA = bA, reszta zero itd...
Najlepsza szarość to chyba taka uzyskana z wszystkich kanałów:
0.33 , 0.33 , 0.33 , 0 , 0
0.33 , 0.33 , 0.33 , 0 , 0
0.33 , 0.33 , 0.33 , 0 , 0
0 , 0 , 0 , 1 , 0

Saturacją sterujemy tak zmieniając parametry matrycy, żeby płynnie przeszła 
z np.
0,1,0,0
0,1,0,0
0,1,0,0

do
1,0,0,0
0,1,0,0
0,0,1,0

(jedna wartość jest stała) 
Technical Details
Message-ID: <f004bb$80v$1@nemesis.news.tpi.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.atman.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
References: <evm3el$4kt$1@news.onet.pl> <evu7su$qg2$1@achot.icm.edu.pl> <evub28$j1m$1@news.lublin.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.atman.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
From: "Neo[EZN]" <adessaxKASUJ@wp.pl>
Newsgroups: alt.pl.programy.flash-5
Subject: Re: Flash - po najechaniu myszką zmiana koloru
Date: Mon, 16 Apr 2007 17:18:33 +0200
Organization: tp.internet - http://www.tpi.pl/
Lines: 64
Message-ID: <f004bb$80v$1@nemesis.news.tpi.pl>
References: <evm3el$4kt$1@news.onet.pl> <evu7su$qg2$1@achot.icm.edu.pl> <evub28$j1m$1@news.lublin.pl>
NNTP-Posting-Host: ayd57.neoplus.adsl.tpnet.pl
X-Trace: nemesis.news.tpi.pl 1176736939 8223 83.27.115.57 (16 Apr 2007 15:22:19 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Mon, 16 Apr 2007 15:22:19 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3028
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3028
X-RFC2646: Format=Flowed; Response
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit