1

私はgeneratorプラグインを書いており、メソッドを使用してドキュメント構造を取得していますgenerator.getDocumentInfo()。ツリー構造のdocumentオブジェクトを含むオブジェクトを返します。オブジェクトにはプロパティがあり、各レイヤーにはプロパティがあります。layerdocumentdocument.idlayer.id

目標: レイヤーを非表示にしたい - ドキュメント ID とレイヤー ID しか知らない。

問題: 私が見つけたジェネレータ プラグインでレイヤーを非表示にする唯一の方法は、evaluateJSXString()メソッドです。これは問題ありませんが、ID でドキュメントにアクセスし、ID でレイヤーにアクセスする方法がわかりません。http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/photoshop/pdfs/photoshop-cc-javascript-ref.pdfドキュメントにはプロパティがなく、idレイヤーにもプロパティはありませidん. 私が見つけたのはapp.documents、ドキュメントの配列(ただし、インデックスはidではありません)でapp.document[i].layersあり、レイヤーの配列ですが、トップレベルのレイヤーのみを含み、各トップレベルのレイヤーには子レイヤーが含まれていることだけです。

私が見る唯一のオプションは、最初app.documentsに配列をトラバースして、たとえば一致するファイル名でドキュメントを見つけ、次にdocument.layersツリー構造のレイヤーを検索するJSXスクリプトを作成することです..

  1. 他のオプションはありますか?
  2. generator.getDocumentInfo() を使用する場合、ジェネレータはどのようにドキュメントとレイヤ ID を提供しますか? いくつかのgeneratpr-internal表記はありますか?
4

1 に答える 1

1

これは古い質問で、同じ質問がありました。ジェネレーターのメソッドを使用して解決策を思い付くことができましたevaluateJSXStringevaluateJSXStringジェネレータープラグインで with を使用してextendscript を実行できます。ここにはループは含まれていません。だけでlayerID

注:layerIDはレイヤー ID を保持する変数であり、評価される文字列に連結されます。

レイヤーを表示するには:

  var changeVisibilityString = " var ref = new ActionReference(); \
                                  ref.putIdentifier(charIDToTypeID('Lyr '), " + layerID + " ); \
                                  var desc = new ActionDescriptor(); \
                                  desc.putReference(charIDToTypeID('null'), ref); \
                                  desc.putBoolean(charIDToTypeID('MkVs'), false); \
                                  executeAction( charIDToTypeID('Shw '), desc);"

    generator.evaluateJSXString(changeVisibilityString);

レイヤーを非表示にするには:

  var changeVisibilityString = " var ref = new ActionReference(); \
                                  ref.putIdentifier(charIDToTypeID('Lyr '), " + layerID + " ); \
                                  var desc = new ActionDescriptor(); \
                                  desc.putReference(charIDToTypeID('null'), ref); \
                                  desc.putBoolean(charIDToTypeID('MkVs'), false); \
                                  executeAction( charIDToTypeID('Hd  '), desc);"

    generator.evaluateJSXString(changeVisibilityString);
于 2014-07-07T21:31:09.623 に答える