[]【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);
}
}
}
在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);
}
}
}
没有找到相关结果
已邀请:
要回复问题请先登录
1 个回复
Monica - 知识达人
赞同来自: