Я работаю над сценарием, который находит / заменяет отсутствующие элементы в вашем проекте.К сожалению, я сталкиваюсь с ситуацией обнаружения и последующей замены источников слоистых изображений (psd, ai и т. Д.).
1) Я не вижу способа определить, является ли AvItem слоем в слоистом изображении, кромепарсинг item.name, который ненадежен, потому что пользователь всегда может переименовать элементы на панели проекта.
2) Как только я знаю, что это часть многоуровневого изображения, я не могу понять, как повторносвяжите его с правильным изображением, не заменяя слой объединенным изображением.item.replace(new_path)
заменит этот элемент всем изображением, а не слоем внутри изображения.Например:
var item = app.project.item(3); //assuming this is the 'layer' we want to replace
item.replace(new_path);
Так есть ли где-нибудь секретное свойство, которое надежно сообщит мне, является ли элемент частью многослойного изображения, и если да, есть ли способ связать его, не заменяя слой навсе объединенное изображение?
EDIT
Вот функция, позволяющая угадать, является ли слой частью многослойного изображения.Это не пуленепробиваемый, но он должен работать, пока пользователь не переименует элемент:
function isSourceLayered (av_item) {
// check if there is a "/"
if (av_item.name.indexOf("/") != -1) {
// check if it is in a "layers" folder
if (av_item.parentFolder.name.indexOf("Layers") != -1) {
return true;
}
}
return false;
}