2 Replies Latest reply on Dec 1, 2015 5:52 PM by mickyhulse

    Active and current layer

    mickyhulse Level 1



      When looping over layers, what is the best way to:


      1. Get the "active" layer?

      2. Set a new layer as active?


      Also, is there an easy way to get the index of the app.activeDocument.activeLayer when not looping over layers? In other words, can I determine the activeLayer's index without using a loop to find it?



        • 1. Re: Active and current layer
          Silly-V Adobe Community Professional

          Setting the activeLayer property does the setting trick:

              doc.activeLayer = doc.layers[1];

          And getting the index seems to work using the zOrderPosition property for getting the 1-based stacking order:

              alert(doc.activeLayer.zOrderPosition); // 2

          • 2. Re: Active and current layer
            mickyhulse Level 1

            Awesome! Thanks Silly-V!


            I can't believe I didn't think to set the activeLayer like that. It's so obvious now that you point it out. Lol.


            +1 on the zOrderPosition. I saw that in the object viewer, but I wasn't sure if that was a reliable way to get the index. Much appreciated!


            Also, for future readers, one way to check for active layer when looping over layers is:


            _doc = app.activeDocument;

            for (i = 0, l = _doc.layers.length; i < l; i++) {

              current = _doc.layers[i];

              if (current === _doc.activeLayer) {

              // The `current` layer is the `activeLayer`, so do something.




            Thanks a billion Silly-V, I totally appreciate all of your pro help!


            Have a great week!