最近发现fgui组件的color设置无效,即使用laya自带的颜色滤镜依然无效,所以着手解决了一下,直接上代码。
修改fgui.js,然后找到gobject类,添加如下代码
__proto.setColor=function(val){ if(val){ var r = parseInt(val.substring(1, 3), 16); var g = parseInt(val.substring(3, 5), 16); var b = parseInt(val.substring(5, 7), 16); var cm = new ColorMatrix(); cm.setRgb(r/255, g/255, b/255); var cf = new ColorFilter(cm); this.filters=; } else{ this.filters=[]; } }
找到 ColorMatrix 类,然后添加如下代码
__proto.setRgb=function(r, g, b){ r=this.cleanValue(r,1); g=this.cleanValue(g,1); b=this.cleanValue(b,1); this[0]=r; this[6]=g; this[12]=b; }
大功告成,在你的任意fgui组件调用,xxx.setColor(‘#ff0000’)和xxx.setColor(null)即可设置颜色效果和取消颜色效果。