リンクをクリップボードにコピー
コピー完了
非プログラマですが、PhotoshopのJavascriptでの操作を勉強中です
Photoshopではレイヤーグループの中にさらにレイヤーグループをつくることが可能ですが、
レイヤーグループ名の取得は一番上の階層のグループが取得されてしまいます。
(layerSetObj.nameを使って取得しています)
同様にグループを指定して操作したくても、
2番目の階層より下のレイヤーグループやグループ内レイヤーをレイヤー名で指定するとエラーとなってしまいます。
2番目以下の階層を指定する方法はあるのでしょうか?
※補足
サンプルコードを参考にしているサイト様
http://nakatoji.lolipop.jp/index.php/extendscript
http://www.openspc2.org/book/PhotoshopCC/
ああごめんなさいlayerSetsコレクションのほうがスマートでしたね。
任意のレイヤーから内包グループを参照するにはparentプロパティです。
activeDocument.activeLayer.parent
リンクをクリップボードにコピー
コピー完了
レイヤー階層が仮に、
グループ 1
└グループ2
となっている場合、グループ2には親のグループ1を経由しないと辿り着けないっぽいですね。
名前と階層が特定できている場合の決め打ちであれば
var hoge = activeDocument.layers.getByName("グループ1").layers.getByName("グループ2");
とすれば参照できます。
リンクをクリップボードにコピー
コピー完了
ありがとうございます!
おっしゃる通り、直接ではなく経由すると行けるみたいです。
公式のリファレンスガイドにもこのようなサンプルスクリプトがあったので、後学の方のために記載しておきます↓
var layerSetRef = app.activeDocument.layerSets.getByName ('myParentSet');
var childSet = layerSetRef.layerSets.getByName ('myChildset');
恐縮ですが、名指しではなく、activeLayerから取得する方法もわかりましたら是非宜しくお願いいたします。
リンクをクリップボードにコピー
コピー完了
ああごめんなさいlayerSetsコレクションのほうがスマートでしたね。
任意のレイヤーから内包グループを参照するにはparentプロパティです。
activeDocument.activeLayer.parent
リンクをクリップボードにコピー
コピー完了
ありがとうございます。
お陰様で作りたい機能を実装できました。
大変助かりました。