进一步测试滤镜效果:
复制内容到剪贴板
代码:
//场景上放若干个MC,实例名依次为:mc1,mc2,mc3,……mc12.
import flash.filters.*;
onEnterFrame = function () {
mc1.filters = [new BlurFilter(_xmouse/10, _ymouse/10, 2)]; //模糊
mc2.filters = [new DropShadowFilter(10, 0, 0x0000FF, 1, _xmouse/10, _ymouse/10)]; //投影
mc3.filters = [new GlowFilter(0xFF0000, .5, _xmouse/10, _ymouse/10)]; //发光
mc4.filters = [new ColorMatrixFilter([0.386, 0.6094, 0.082, 0, 0,
0.386, 0.6094, 0.082, 0, 0,
0.386, 0.6094, 0.082, 0, 0,
0, 0, 0, 1, 0])]; //变灰度,参数是灰度矩阵
var nRed:Number=0.3086;
var nGreen:Number=0.6094;
var nBlue:Number=0.0820;
var nLevel:Number=_xmouse/400;
mc5.filters = [new ColorMatrixFilter([(1-nLevel)*nRed+nLevel,(1-nLevel)*nGreen,(1-nLevel)*nBlue,0,0,
(1-nLevel)*nRed,(1-nLevel)*nGreen+nLevel,(1-nLevel)*nBlue,0,0,
(1-nLevel)*nRed,(1-nLevel)*nGreen,(1-nLevel)*nBlue+nLevel,0,0,
0, 0, 0, 1,0])];//色饱和度,这个计算有点复杂
var R:Number,G:Number,B:Number
R=G=B=_xmouse/50;
mc6.filters = [new ColorMatrixFilter([R,0,0,0,0,
0,G,0,0,0,
0,0,B,0,0,
0,0,0,1,0])];//亮度,同时改变矩阵中RGB。如果不同步,就调色调。
var nCon:Number=_xmouse/550;
var nSca:Number=nCon*11;
var nOff:Number=63.5-(nCon*698.5);
mc7.filters = [new ColorMatrixFilter([nSca,0,0,0,nOff,
0,nSca,0,0,nOff,
0,0,nSca,0,nOff,
0,0,0,1,0])];//对比度
mc8.filters = [new ColorMatrixFilter([-1,0,0,0,255,
0,-1,0,0,255,
0,0,-1,0,255,
0,0,0,1,0])];//底片效果,颜色反转
mc9.filters = [new ConvolutionFilter(3,3,[0,1,0,1,-4,1,0,1,0])];//边缘检测
mc10.filters = [new ConvolutionFilter(3,3,[0,-1,0,-1,5,-1,0,-1,0])];//锐化
mc11.filters = [new ConvolutionFilter(3,3,[-2,-1,0,-1,1,1,0,1,2])];//浮雕
};[
本帖最后由 ybzjllj 于 2006-11-29 08:16 编辑 ]