使用扩展脚本在后效应项目中按名称获取合成

时间:2015-10-15 10:23:57

标签: composition extendscript after-effects

我正在研究After Effects脚本并使用AE脚本指南作为学习的基础。

我有一个After Effect项目,其中包含两个AE项目,每个项目中都有多个项目。

我想从具有特定名称的主项目中获取合成但不循环遍历项目中的所有项目。例如,

var myComp = app.project.comp("Composition Name");

这可能吗?还有其他方法吗?

1 个答案:

答案 0 :(得分:5)

你可以这样得到补偿:

var myComp;
for (var i = 1; i <= app.project.numItems; i ++) {
    if ((app.project.item(i) instanceof CompItem) && (app.project.item(i).name === 'Comp Name')) {
        myComp = app.project.item(i);
        break;
    }
}

请注意,如果您想检查是否有更多具有相同名称的comp,您应该像这样写:

var myComp;
for (var i = 1; i <= app.project.numItems; i ++) {
    if ((app.project.item(i) instanceof CompItem) && (app.project.item(i).name === 'Comp Name')) {
        if (myComp) {
            throw new Error();//or something else
        }
        myComp = app.project.item(i);
    }
}

如果你想要,你可以把它放在数组中并检查它是否是唯一的返回myComp [0],如果没有那么做就像抛出错误