• ベストアンサー

Photoshop JavaScript で複数のグループを操作する

Photoshopで複数のグループを選んだ状態で、 1.選ばれているグループだけを閉じた状態にする。あるいは、 開いた状態にする。 2.選ばれているグループに含まれるレイヤーだけを見える状態に する。あるいは見えない状態にする。 これをJavaScriptで書きたいのですが、ReferenceManual等調べても どうもやり方がわかりません。詳しい方、教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

私も是非利用したい機能なので作ってみました(Windows版CS2)。ReferenceManual で見つからない場合には、ScriptListener.8li を利用すると解決できる場合があります。 if( app.documents.length ) { var showType = true ; ShowAllSets( !showType ) ; // 全レイヤーセットを非表示(または表示) ShowSelectedSets( showType ) ; // 選択された全レイヤーセットのみを表示(または非表示) } function ShowAllSets( visible ) { var docRef = app.activeDocument ; var setsRef = docRef.layerSets ; var count = setsRef.length ; for( var j = 0 ; j < count ; ++j ) { setsRef[j].visible = visible ; } } function ShowSelectedSets( visible ) { // 以下 ScriptListener.8li に吐き出させたコードを編集 var ref = new ActionReference() ; var classtype = charIDToTypeID( "Lyr " ) ; var enumType = charIDToTypeID( "Ordn" ) ; var value = charIDToTypeID( "Trgt" ) ; ref.putEnumerated( classtype, enumType, value ) ; var descriptor = new ActionDescriptor() ; var key = charIDToTypeID( "null" ) ; descriptor.putReference( key, ref ) ; var event; if(visible) { event = charIDToTypeID( "Shw " ) ; } else { event = charIDToTypeID( "Hd " ) ; } executeAction( event, descriptor, DialogModes.NO ) ; }

zuntac
質問者

お礼

回答、ありがとうございます。 スクリプトを活用させていただきます。 ScriptListenerも試してみました。選択レイヤーを表示、非表示 させた場合にはログが吐かれるのを確認しましたのですが、 グループを開いたり閉じたりしてもログは出力されないの ですね。こちらのスクリプトは現状では無理そうなのが分かりました。

関連するQ&A

専門家に質問してみよう