公開日:2018年4月28日
実際に選択状態になるわけではなくスクリプトで指定したレイヤーに対しremove()
やrotate()
などのメソッドで何かする、という動作になります。
var doc=app.activeDocument;
var lay=doc.artLayers[0];
alert(lay);
artLayers、layersはコレクションオブジェクトで、[レイヤー]パネルにあるレイヤーが格納されています。いちばん上が0番目となっているので、このスクリプトだと「いちばん上のレイヤー」を指しています。
var doc=app.activeDocument;
var lay=doc.artLayers.getByName("レイヤー 4");
alert(lay);
artLayersオブジェクトの中から、「レイヤー4」という名称のレイヤーを指定します。同じ名称のレイヤーがある場合は、いちばん上にある「レイヤー4」が指定されます。
var doc=app.activeDocument;
var lay=doc.activeLayer;
alert(lay);
こちらは、「[レイヤー]パネルで選択されているレイヤー」が指定されます。複数選択していた場合はコレクションオブジェクトにならず、「選択しているレイヤーの中でいちばん上にあるもの」が指定されます。
var doc=app.activeDocument;
var sizes=[doc.width,doc.height];
var lay=doc.activeLayer;
if(lay.kind == LayerKind.TEXT){
lay.textItem.contents="幅"+sizes[0]+"、"+"高さ"+sizes[1];
}else{
};
こちらは、「[レイヤー]パネルで選択されているレイヤー」がテキストレイヤーの場合、そのレイヤーに幅、高さのドキュメントサイズを書き込みます。
今回は「不透明度81%未満のレイヤーにぼかし処理」してみましょう。
var doc=app.activeDocument;
var lays=doc.artLayers;
var layCount=lays.length;
for(var i=layCount-1; i > -1; i--){
if(lays[i].opacity < 81){
lays[i].applyGaussianBlur(25);//ぼかし(ガウス)、半径25px
}
}
activeLayerの挙動を考えると[レイヤー]パネルで複数選択しているものに何かする、というのはScriptingListenerを使わないとできないので、「レイヤーそれぞれの設定値を条件にしてひとつずつ処理」を繰り返すコードにしています。