使用 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*/] ...
我有一个嵌套的分组结构,类似于:
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*/] ...