项目中,如果我们想讲一个还没有购买的任务隐藏掉,抹掉他的色彩或者直接将其设置为黑色,LayaBox中给我们提供了一种滤镜的功能可以实现上面的要求。
/**
* 将角色设置为灰色的。
*/
private grayingRole(roleImg: Laya.Image): void {
//由 20 个项目(排列成 4 x 5 矩阵)组成的数组,灰图
var grayscaleMat: Array<number> =
[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];
//创建一个颜色滤镜对象,灰图
var grayscaleFilter: ColorFilter = new ColorFilter(grayscaleMat);
// 灰度猩猩
roleImg.filters = [grayscaleFilter];
}
将灰色的图改成正常色彩,可以用下面的方法:
roleImg.filters = null;
同样的我们可以给一张图片设置多个滤镜效果,这样可以实现出阳光下,阴天,等等各种特效。