我有一个嵌套的分组结构,如下所示:
TOP GROUP > NESTED GROUP > (图层到这里)
我的目标是隐藏和显示这些图层,我可以使用以下方法对顶层组执行此操作:
app.activeDocument.layerSets.getByName("TOP GROUP").visible = true;
但是,每当我尝试通过相同的脚本访问嵌套组时,我都会收到错误:
错误1302:没有这样的元素
我理解这是因为脚本无法找到嵌套组,因为它不是最顶层的,因为脚本不会进行任何挖掘以达到它。
那就是说,是否有一种简单的方法可以达到嵌套在另一组中的组?我知道有很多方法可以使用Action Manager来实现这一点,但我更喜欢将它保留在JavaScript中,因为我对它至少有点熟悉,而我对Action Manager没有任何经验。
答案 0 :(得分:0)
layerSets是包含数组的数组。您可以递归地浏览它:
function browseLayerSets(o){
for(var i = o.layerSets.length-1; 0 <= i; i--) {
var layerSet = o.layerSets[i];
// layerSet.doSomething ...
browseLayerSets(layerSet)
}
}
如果您确切知道自己想要什么,可以使用:
app.activeDocument.layerSets[0].layerSets[/*your item index*/].layerSets[/*your item index*/] ...