Многоуровневый исходный файл AE Extendscript - PullRequest
0 голосов
/ 06 мая 2019

Я работаю над сценарием, который находит / заменяет отсутствующие элементы в вашем проекте.К сожалению, я сталкиваюсь с ситуацией обнаружения и последующей замены источников слоистых изображений (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;
}

1 Ответ

0 голосов
/ 06 мая 2019

Я только что задал такой же вопрос на форуме Adobe extendscript.Если нет недокументированных функций (а я потратил немного времени на просмотр браузера данных Extendscript Toolkit), объект fileSource , похоже, не имеет каких-либо атрибутов или методов для этого.

Существуетсвоего рода обходной путь, вы можете импортировать файл, используя ImportOptions.importAs(ImportAsType.COMP). Это импортирует комп, и вы можете перебирать слои, соответствующие имени, получать источник этого слоя и использовать его в качестве нового источника.Но, как вы говорите, это не работает, если источник был переименован.

Я написал это в функцию, она доступна на github Редактировать: Я забыл, что изменил способ работы этой функции.Из-за этой проблемы он не реимпортирует источники слоев, он просто использует команду меню Duplicate .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...