[0] 使用发光滤镜后的第一个遮罩效果无效

如果在'j程序逻辑中先使用了发光滤镜,使用滤镜后的第一个遮罩没有效果 。LAYA版本是   2.13.0
 var glowFilter = new Laya.GlowFilter("#ffff00", 10, 0, 0);        this.btnLoad.displayObject.filters = [glowFilter];
        var ui_hpBarMask = new Laya.Sprite();
        ui_hpBarMask.graphics.clear();
        ui_hpBarMask.graphics.drawRect(0, 0, 154, 12, 0xffffff);
        this.txt_pro.displayObject.mask = ui_hpBarMask;
60741E0E-7510-4fa3-8B4A-F185DF02E83C.png
已邀请:

Laya_Fred

赞同来自:

您好,我这里使用您所示的代码,测试后是正常的,图一为未开启遮罩的效果,图二为开启遮罩后的效果,您那是是否有displayObject为空的报错呢。

图一.png

图一

图二.png

图二

Laya_Fred

赞同来自:

您好,这个问题应该是场景中添加了发光滤镜后,文字使用的文本图集的touch时间超过了指定的时间间隔后被GC掉了,导致在初始化进入场景后经过几十帧后重新使用mask进行混合时候导致文字消失。您可以在TextRender的GC方法的curatlas.destroy();处加打印查看。您可以在下图所示的地方加一个对图集的lock标志位的判断来暂时解决这个问题,更好的优化方法我们还在考虑。

图一.png

 

要回复问题请先

商务合作
商务合作