After Effects / ExtendScript:使用库和导入 .jsx 文件?

Posted

技术标签:

【中文标题】After Effects / ExtendScript:使用库和导入 .jsx 文件?【英文标题】:After Effects / ExtendScript: Using libraries and importing .jsx files? 【发布时间】:2013-01-18 13:39:59 【问题描述】:

我是 After Effects 脚本的新手,但对浏览器中的 javascript 有很多经验。

    如何导入 .jsx 文件? 可以使用下划线.js等js库吗? AE 脚本有哪些好的资源? (理想的信息图表项目)

【问题讨论】:

【参考方案1】:
    在脚本旁边包含 .jsx

使用:

#include "includeme.jsx"

编辑 2:

您还可以使用以下语法包含文件:

//@include "includeme.jsx"

哪个(恕我直言)是更好的方法。它不会破坏 linter 并且更加 javascript-ish。

    您可以使用普通的旧 javascript(ES3 语法)。如果您包含的库使用某些特定于浏览器的 js(如 console.log()),您将收到错误消息

    最佳资源是AECS6 scripting guide。 http://aescripts.com 上还有很多开源脚本,你可以查看

编辑 1:您还可以包含这样的文件。

var path = ((File($.fileName)).path); // this is the path of the script
// now build a path to another js file
// e.g. json lib https://github.com/douglascrockford/JSON-js
var libfile = File(path +'/_libs/json2.js');
if(libfile.exists)
  $.evalFile(libfile);

【讨论】:

感谢费边!我早些时候尝试过,但它没有用。不知道我做错了什么。 //@ 语法是否适用于其他预处理器指令,例如 #target indesign#strict on @Sturm 我认为 //@target 有效。 //@严格我不知道。你为什么不试一试并报告呢? ;) @f***moronzirfas,我看不出有什么区别。使用该行,删除该行,将其更改为#strict off 等。当尝试在脚本中写入只读属性时,该命令(当设置为“on”时)应该引发运行时错误.我在脚本顶部附近输入了app.activeScriptUndoMode = UndoModes.AUTO_UNDO; 行来测试它。但是,无论#strict 行是什么,我都会收到错误消息。 可怜的旧扩展脚本。它在某些部分是如此破碎。感谢您的报告

以上是关于After Effects / ExtendScript:使用库和导入 .jsx 文件?的主要内容,如果未能解决你的问题,请参考以下文章

javascript After Effects Scripts我喜欢使用

影视后期认识After Effects

After Effects 作为后端电影引擎?

在 After Effects 中以编程方式更改 TextLayer 的文本

Premiere&After Effects的实时预览插件开发

After Effects / ExtendScript:使用库和导入 .jsx 文件?