使用 Photoshop 获取嵌套图层集 Javascript

Getting Nested LayerSet w/ Photoshop Javascript

我有一个嵌套的分组结构,类似于:

TOP GROUP > NESTED GROUP >(此处为图层)

我的目标是隐藏和显示这些图层,我可以通过以下方式对顶部组执行此操作:

app.activeDocument.layerSets.getByName("TOP GROUP").visible = true;

但是,每当我尝试通过同一脚本访问嵌套组时,我都会收到错误消息:

Error 1302: No such element

我知道这是因为脚本无法找到嵌套组,因为它不是最顶层的,因为脚本不会进行任何挖掘来找到它。

也就是说,有没有一种简单的方法可以访问嵌套在另一个组中的组?我知道有一些方法可以使用 Action Manager 来执行此操作,但我更愿意将其保留在 JavaScript 中,因为我至少对它有点熟悉,而我完全没有使用 Action Manager 的经验。

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*/] ...