API Docs for: 1.10.1 最后更新日期:2016年03月28日
Google搜索   
Show:

LColorMatrixFilter Class

Extends LBitmapFilter

Available since 1.9.11

使用 LColorMatrixFilter 类可以将 4 x 5 矩阵转换应用于输入图像上的每个像素的 RGBA 颜色和 Alpha 值,以生成具有一组新的 RGBA 颜色和 Alpha 值的结果。该类允许饱和度更改、色相旋转、亮度为 Alpha 以及各种其他效果。您可以将滤镜应用于任何显示对象(即,从 LDisplayObject 类继承的对象),以及 LBitmapData 对象。

注意:对于 RGBA 值,最高有效字节代表红色通道值,其后的有效字节分别代表绿色、蓝色和 Alpha 通道值。

要创建新的颜色矩阵滤镜,请使用 new LColorMatrixFilter() 语法。滤镜的具体使用取决于要应用滤镜的对象:

・要对影片剪辑、文本字段、按钮应用滤镜,请使用 filters 属性(继承自 LDisplayObject)。设置对象的 filters 属性不会修改相应的对象,而清除 filters 属性可以删除相应的滤镜。

・要对 LBitmapData 对象应用滤镜,请使用 LBitmapData.applyFilter() 方法。对 LBitmapData 对象调用 applyFilter() 会取得源 LBitmapData 对象和滤镜对象,并最终生成一个过滤图像。

如果对显示对象应用滤镜,则会自动调用该对象的 cacheAsBitmap(true) 。

Constructor

LColorMatrixFilter

(
  • matrix
)
public

Defined in filters/LColorMatrixFilter.js:1

Available since 1.9.11

Parameters:

  • matrix Array

    由 20 个项目(排列成 4 x 5 矩阵)组成的数组。

    由 20 个项目组成的数组,适用于 4 x 5 颜色转换。matrix 属性不能通过直接修改它的值来更改(例如 myFilter.matrix[2] = 1;)。相反,必须先获取对数组的引用,对引用进行更改,然后重置该值。

    颜色矩阵滤镜将每个源像素分离成它的红色、绿色、蓝色和 Alpha 成分,分别以 srcR、srcG、srcB 和 srcA 表示。要计算四个通道中每个通道的结果,可将图像中每个像素的值乘以转换矩阵中的值。(可选)可以将偏移量(介于 -255 至 255 之间)添加到每个结果(矩阵的每行中的第五项)中。滤镜将各颜色成分重新组合为单一像素,并写出结果。

    在下列公式中,a[0] 到 a[19] 对应于由 20 个项目组成的数组中的条目 0 至 19,该数组已传递到 matrix 属性:

    如果对显示对象应用滤镜,则会自动调用该对象的 cacheAsBitmap(true) 。

    ・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]

    对于数组中的每个颜色值,值 1 等于正发送到输出的通道的 100%,同时保留颜色通道的值。

Example:

LInit(1000/60, "legend", 800, 480, main);
function main () {
    loader = new LLoader();
    loader.addEventListener(LEvent.COMPLETE, loadBitmapdata); 
    loader.load("face.jpg", "bitmapData");
}
function loadBitmapdata (event) {
    var layer = new LSprite();
    layer.x = layer.y = 100;
    addChild(layer);
    var bitmapdata = new LBitmapData(event.target);    
    var bitmap = new LBitmap(bitmapdata);    
    layer.addChild(bitmap);    
    var sprite = new LSprite();    
    sprite.graphics.drawRect(3, "#000000", [0, 0, 190, 100],true,"#00FF00");    
    sprite.x = -100;        
    layer.addChild(sprite);        
    layer.filters = [new LColorMatrixFilter([0.3086,0.6094, 0.0820, 0, 0, 0.3086, 0.6094, 0.0820, 0, 0, 0.3086, 0.6094, 0.0820, 0, 0, 0, 0, 0, 1, 0])];
}

Item Index

Methods

Properties

Methods

callParent

(
  • functionName
  • arguments
)
public

Inherited from LObject: utils/LObject.js:22

Available since 1.6.0

调用父类的函数。

Parameters:

  • functionName String

    函数名

  • arguments Array

    固定值arguments

Example:

function funA(){
    LExtends(this,LObject,[]);
}
funA.prototype.myName = function(){
    return "AAA";
}
function funB(){
    LExtends(this,funA,[]);
}
funB.prototype.myName = function(){
    return "BBB";
}
function funC(){
    LExtends(this,funA,[]);
}
funC.prototype.myName = function(){
    return this.callParent("myName",arguments);
}
LInit(1000/50,"legend",800,150,main);
function main(){
    LGlobal.setDebug(true);
    var objB = new funB();
    trace(objB.myName());//BBB
    var objC = new funC();
    trace(objC.myName());//AAA
}

Properties

objectIndex

Int public

Inherited from LObject: utils/LObject.js:11

Available since 1.6.0

对象的ID