Adobe 0046100128056 Scripting Guide - Page 52

Getting the active layer, Referring to layers by layer index, Using relative references, Given a layer

Page 52 highlights

CHAPTER 4: Working with Layers Scripting Layers 52 Getting the active layer The active layer is the layer on which new objects are created. You can get the active layer using scripting, as shown in the following script fragment. (For the complete script, see ActiveLayer.) //Given a document "myDocument"... var myDocument = app.documents.item(0); var myLayer = myDocument.activeLayer; Referring to layers by layer index You can get a reference to a layer using the index of the layer in the layers collection of a document. The script fragment below uses the layer index to iterate through layers. (For the complete script, see HideOtherLayers.) //Given a document "myDocument"... var myTargetLayer = myDocument.activeLayer; for(var myCounter = 0; myCounter < myDocument.layers.length; myCounter++){ //If the layer is not the target layer, hide it. if(myDocument.layers.item(myCounter).name != myTargetLayer.name){ myDocument.layers.item(myCounter).visible = false; } } Note that you can use negative numbers to refer to the layers in the layers collection of a document. Layer -1 refers to the last (bottom) layer in the collection. Referring to layers by layer name You also can get a reference to a layer using the name of the layer, as shown in the following script fragment. (For the complete script, see LayerName.) var myLayer = app.documents.item(0).layers.item("Text Layer"); Using relative references Given a layer, you can refer to the layer above using the previousItem method, or refer to the layer below using the nextItem method, as shown in the following script fragment. (For the complete script, see RelativeLayerReferences.) Both methods take a reference layer as a parameter. //Given a document "myDocument"... var myLayer = myDocument.layers.item(4); myDocument.activeLayer = myLayer; var myNextLayer = myDocument.layers.nextItem(myLayer); var myPreviousLayer = myDocument.layers.previousItem(myLayer); var myString = "The layer below the target layer is " + myNextLayer.name + "\r"; myString += "The layer above the target layer is " + myPreviousLayer.name; alert(myString); The previousItem and nextItem methods return an invalid layer reference if the specified (next or previous) layer does not exist, rather than generating an error.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209

C
HAPTER
4: Working with Layers
Scripting Layers
52
Getting the active layer
The
active layer
is the layer on which new objects are created. You can get the active layer using scripting,
as shown in the following script fragment. (For the complete script, see ActiveLayer.)
//Given a document "myDocument"...
var myDocument = app.documents.item(0);
var myLayer = myDocument.activeLayer;
Referring to layers by layer index
You can get a reference to a layer using the index of the layer in the layers collection of a document. The
script fragment below uses the layer index to iterate through layers. (For the complete script, see
HideOtherLayers.)
//Given a document "myDocument"...
var myTargetLayer = myDocument.activeLayer;
for(var myCounter = 0; myCounter < myDocument.layers.length; myCounter++){
//If the layer is not the target layer, hide it.
if(myDocument.layers.item(myCounter).name != myTargetLayer.name){
myDocument.layers.item(myCounter).visible = false;
}
}
Note that you can use negative numbers to refer to the layers in the layers collection of a document. Layer
-1 refers to the last (bottom) layer in the collection.
Referring to layers by layer name
You also can get a reference to a layer using the name of the layer, as shown in the following script
fragment. (For the complete script, see LayerName.)
var myLayer = app.documents.item(0).layers.item("Text Layer");
Using relative references
Given a layer, you can refer to the layer above using the
previousItem
method, or refer to the layer below
using the
nextItem
method, as shown in the following script fragment. (For the complete script, see
RelativeLayerReferences.) Both methods take a reference layer as a parameter.
//Given a document "myDocument"...
var myLayer = myDocument.layers.item(4);
myDocument.activeLayer = myLayer;
var myNextLayer = myDocument.layers.nextItem(myLayer);
var myPreviousLayer = myDocument.layers.previousItem(myLayer);
var myString = "The layer below the target layer is " + myNextLayer.name + "\r";
myString += "The layer above the target layer is " + myPreviousLayer.name;
alert(myString);
The
previousItem
and
nextItem
methods return an invalid layer reference if the specified (next or
previous) layer does not exist, rather than generating an error.