You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在After Effects扩展脚本中获取所有已打开的合成?

获取After Effects中时间轴已打开的合成标签页

嘿,我之前也碰到过这个困惑!AE脚本API里其实有个专门的属性能精准解决你的需求——app.project.openItems,它返回的正是所有当前在时间轴以标签页形式打开的项目(包括合成、素材文件等)。

你之前用到的app.project.activeItem确实只能拿到当前激活的那一个合成,而app.project.items是项目里所有内容的集合,不管有没有打开,所以openItems才是你要找的关键入口。

下面是具体的代码示例,帮你筛选出所有已打开的合成:

// 获取所有已打开的项目集合
const openItems = app.project.openItems;
// 用来存储筛选后的合成对象
const openComps = [];

// 遍历所有已打开项目,筛选出合成类型
for (let i = 1; i <= openItems.length; i++) {
    const currentItem = openItems[i];
    // 判断当前项目是否为合成(CompItem类型)
    if (currentItem instanceof CompItem) {
        openComps.push(currentItem);
        // 可先打印验证结果
        $.writeln(`已打开的合成:${currentItem.name}`);
    }
}

// 现在openComps里就是所有在时间轴标签页打开的合成了
// 接下来你可以对每个合成执行自定义处理逻辑
openComps.forEach(comp => {
    // 这里替换成你的业务代码,比如修改合成时长、批量添加图层等
    $.writeln(`正在处理合成:${comp.name}`);
});

小提醒:

  • 一定要用instanceof CompItem做类型判断,因为openItems里可能包含素材文件夹、视频文件这类非合成的项目,避免后续处理时出现类型错误。
  • AE并没有单独区分“在时间轴打开”和“在查看器打开”的属性,这两种状态的项目都会被纳入openItems,完全覆盖我们说的“标签页打开”的场景。

内容的提问来源于stack exchange,提问作者Oogst

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:15:17