Skip to main content
Participant
September 27, 2021
Answered

Activate Layers from a specific folder

  • September 27, 2021
  • 4 replies
  • 650 views

I need to create a function to turn on layers from an specific folder when button pressed.

Here is a screenshoot to make it more easy to understand it. 

Thanks in advance!

This topic has been closed for replies.
Correct answer r-bin

My original idea was to change active layer when clicking button (like the attached GIF). I need to create a simple avatar creator, so I will have multiple faces, ears, hairs, etc. It's my first time with PSD scripting. I don't know if it is a better solution for this. Thanks!


var set = activeDocument.layerSets.getByName("Head");

for (var i = 0; i < set.layers.length; i++) if (set.layers[i].visible) break;

i = (i+1) % set.layers.length;

for (var n = 0; n < set.layers.length; n++) 
    {
    var viz = n==i;
    if (set.layers[n].visible != viz) set.layers[n].visible = viz;
    }

4 replies

josephlavine
Community Expert
Community Expert
September 28, 2021

I suggest you take a look at Photoshop's Layer Comp feature.

Layer comps

warmly/j

Kukurykus
Legend
September 28, 2021
Bojan Živković11378569
Community Expert
Community Expert
September 28, 2021

By the way, folder inside Ps document is called layer group.

Legend
September 27, 2021

An extremely simple option for your case.

 

var set = activeDocument.layerSets.getByName("Head");

for (var i = 0; i < set.layers.length; i++) set.layers[i].visible = true;
Participant
September 28, 2021

Thanks for taking care of this issue! It worked but It turns all "Head" layers inside the group at the same time. Is it possible to turn only one layer at when clicking?

Legend
September 28, 2021

If multiple layers have the same name, how would the script know which one to show?

Myra Ferguson
Community Expert
Community Expert
September 27, 2021

You can create an action to show an unselected layer or group.

 

You can also use Layer Comps to set the visiblity, position, appearance, and Layer Comp Selection for Smart Objects. Here's more info on Layer Comps:

Layer comps