CHAPTER 4: Working with Layers Scripting Layers 53
Referring to ranges of layers
To refer to a series of layers, you can use the itemByRange method. The following script fragment shows
how to get a reference to a range of layers, then set a property on all layers in the range. (For the complete
script, see HideLayersAbove.)
//Given a document "myDocument"...
var myLayer = myDocument.layers.item(4);
myDocument.activeLayer = myLayer;
//Now hide all of the layers above the current layer.
var myLayers = myDocument.layers.itemByRange(0, myLayer.index -1);
//Even though the result contains multiple layers, you can
//set a property on all of the layers without iterating.
myLayers.visible = false;
Deleting layers
Use the remove method to delete a layer from a specific document, as shown in the following script
fragment. (For the complete script, see DeleteLayer.) You cannot delete the last remaining layer in a
document.
//Given a document "myDocument" containing a layer named "Delete This Layer"...
var myLayer = myDocument.layers.item("Delete This Layer");
myLayer.remove();
Moving layers
Use the move method to change the stacking order of layers in a document, as shown in the following
script fragment. (For the complete script, see MoveLayer.)
//Given a document "myDocument" containing at least two layers...
var myLayerA = myDocument.layers.item(0);
var myLayerB = myDocument.layers.item(1);
myLayerA.move(LocationOptions.AFTER, myLayerB);
Duplicating layers
Use the duplicate method to create a copy of a layer, as shown in the following script fragment. (For the
complete script, see DuplicateLayer.)
//Given a layer "myLayer"...
ar myNewLayer = myLayer.duplicate();
Merging layers
The following script fragment shows how to merge two or more layers, including the page items assigned
to them, into a single layer. (For the complete script, see MergeLayers.)
//Given the layers "myLayer1" and "myLayer2"...
myLayer1.merge(myLayer2);