Copy link to clipboard
Copied
So i know i can use the below to get a layer
var layerName = "Text BG";
app.activeDocument.activeLayer = layers[layerName];
This works fine when the layer isn't within a group, but if it is I get an error
Error 1302: No such element
Line: 53 -> app.activeDocument.activeLayer = layers[layerName];
The layer is within a group called Text Group, how do i go about getting the group correctly?
Copy link to clipboard
Copied
layers is undefined
Copy link to clipboard
Copied
Layers is fine, as i said it works fine if the layer isn't in a group.
Layers is defined using
var layers = app.activeDocument.layers;earlier in the script
Copy link to clipboard
Copied
with(activeDocument)
activeLayer = layerSets['Text Group'].artLayers['Text Bg']
Copy link to clipboard
Copied
@Desbrina I believe that @Kukurykus has provided one possible solution which you can mark as the correct answer.
In my journey of learning scripting, I have collected various useful snippets. The last example in this link uses layer index:
https://gist.github.com/MarshySwamp/229a0676666a44cdaa007da1cfddc0b7
The following is basically the same as the reply from Kukurykus with a slightly different syntax, swapping the layer index numbers in the GitHub Gist example above for names.
activeDocument.activeLayer = activeDocument.layerSets["Text Group"].layers["Text BG"];
Copy link to clipboard
Copied
Yes, as the others have mentioned, you need to select the group to get the layer within it.
Get ready! An upgraded Adobe Community experience is coming in January.
Learn more