[]【Native BUG】Native下对根结点设置filter,无法更新到每个子节点,web是ok的

对一个包含sprite和text的sprite节点,设置filter,比如加一个gray。
在web上,该节点本身及其子节点的sprite和text都可以被正常灰化。
在native上,只有该节点可以被正常灰化,sprite和text都无效。
 
在native上,手动遍历子节点,手动添加filter可以生效。但text在添加filter的时候仍然无效。只有手动设置color才能生效。
 
public static setGray(node: Laya.Node, set: boolean) {
            for (var i = 0; i < node.numChildren; i++) {
                let sprite = node.getChildAt(i) as Laya.Sprite;
                if (sprite) {
                    //if (sprite instanceof Laya.Text) {
                    //    if (set) {
                    //        sprite.color = "#666666";
                    //    } else {
                    //        sprite.color = "#ffffff";
                    //    }
                    //}
                    //else {
                    if (set) {
                        sprite.filters = [Utility.grayFilter()];
                    } else {
                        sprite.filters = null;
                    }
                    //}
                    Utility.setGray(node.getChildAt(i), set);
                }
            }
        }
已邀请:

Monica - 知识达人

赞同来自:

该问题已解决,下一个版本就好了

要回复问题请先

商务合作
商务合作