现在的位置: 首页 > 综合 > 正文

flash filter 高亮 图元 (AS2 ColorMatrixFilter)

2012年06月03日 ⁄ 综合 ⁄ 共 913字 ⁄ 字号 评论关闭

这个代码是AS2

 

在flash中可以用矩阵方便的操作颜色。 

ColorMatrixFilter功能十分强大,他所在的包是:import flash.filters.ColorMatrixFilter;
 

红,绿,蓝通道的值由如下所示计算方法所决定:

CODE:

redResult = a[0] * srcR + a[1] * srcG + a[2] * srcB + a[3] * srcA + a[4]
greenResult = a[5] * srcR + a[6] * srcG + a[7] * srcB + a[8] * srcA
+ a[9]
blueResult = a[10] * srcR + a[11] * srcG + a[12] * srcB + a[13] *
srcA + a[14]
alphaResult = a[15] * srcR + a[16] * srcG + a[17] * srcB + a[18] *
srcA + a[19]

可以看出,第一行的值决定了红色值,第二行决定绿色,第三行蓝色,第四行是透明(Alpha)通道值。同样可以看出首四栏值是与红,绿,蓝,alpha通
道值的乘积,而第五栏的值分别是和(偏移量)。注意每行的源值和结果值都是在0到255的区间内。因此即使各个通道的值小于0或大于255都会被强制到该
区间内。

 
1、变成黑白的。
spr.filters = [new ColorMatrixFilter(
       
        [1,0,0,0,0,  

                       
1,0,0,0,0,  
                       
1,0,0,0,0,  
                       
0,0,0,1,0 
                      
])];

 
2、变成高亮的。
spr.filters = [new ColorMatrixFilter(
       
        [1,0,0,0,50,   

                       
0,1,0,0,50,   

                       
0,0,1,0,50,  
                       
0,0,0,1,0 
                      
])];

 

 

抱歉!评论已关闭.