Я пишу generator
плагин и получаю структуру документа используя метод generator.getDocumentInfo()
. Он возвращает document
объект, содержащий layer
объектов в древовидной структуре. document
объект имеет свойство document.id
, и каждый слой имеет свойство layer.id
.Как скрыть слой по id?
Цель: я хочу скрыть слой - я знаю только идентификатор документа и идентификатор слоя.
Проблема: Единственный способ скрыть слой в плагине генератора, который я нашел, - это метод evaluateJSXString()
. Это нормально, но я не знаю, как получить доступ к документу по id и layer по 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
массива, чтобы найти документ с, например, соответствием имени файла, а затем он будет искать слой в структуре дерева document.layers
..
- ли есть ли другие варианты?
- Как генератор предоставляет идентификаторы документов и слоев при использовании generator.getDocumentInfo()? Является ли какая-то generatpr-внутренняя запись?
Вы можете быть в состоянии использовать activeLayer или app.activeDocument.artLayers.getByName ("myLayerName"); Вместо того, чтобы перемещаться по всем слоям, в противном случае activeLayer не возвращает ничего полезного при выборе нескольких слоев. –
К сожалению, многие слои могут иметь одно и то же имя ... – user606521
Ugh, по id это тогда! Если вы не заставите пользователя создать уникальное имя :) –