【发布时间】:2013-11-12 21:29:39
【问题描述】:
我正在编写generator 插件,我使用方法generator.getDocumentInfo() 获取文档结构。它返回 document 对象,其中包含树结构中的 layer 对象。 document 对象具有属性document.id 并且每一层都具有属性layer.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 是一个层数组,但它只包含顶层层,每个顶层层都包含子层。
我看到的唯一选择是编写 JSX 脚本,该脚本将首先遍历 app.documents 数组以查找具有例如匹配文件名的 doc,然后它将在 document.layers 树结构中搜索层..
- 还有其他选择吗?
- 使用 generator.getDocumentInfo() 时生成器如何提供文档和图层 ID?是一些生成器内部的符号吗?
【问题讨论】:
-
您也许可以使用 activeLayer 或 app.activeDocument.artLayers.getByName("myLayerName");顺便说一句,activeLayer 在选择多个图层时不会返回任何有用的东西,而不是遍历所有图层。
-
不幸的是,许多层可能有相同的名称...
-
呃,原来如此!除非你强迫用户创建一个唯一的名字:)
标签: adobe photoshop extendscript photoshop-script