5

是否可以将所有自定义表达式保存在外部 .jsx 文件中,以便我可以从项目内部调用它们?

例如,假设我有一个经常使用的表达式,它将人偶工具点与空对象的位置联系起来。我知道我可以将该表达式转换为一个可以接受两个参数的函数,但是我可以将它保存到自定义库中,以便我可以轻松地在项目中重用它吗?

现在,我只是将相同的代码从一个属性复制并粘贴到另一个属性,我开始觉得有另一种方法可以更有效地做到这一点。

提前致谢!

4

3 回答 3

3

我成功地测试了这个,把它放在你的表情之上:

$.evalFile("/Users/myname/ae/functions.txt");

然后,您可以访问您的 functions.txt 文件中的任何功能。

有关更多详细信息,请参见此处:https ://forums.creativecow.net/readpost/227/29337

这种方法的问题是您仍然需要为每个表达式包含额外的行。

无论如何,这是我的完整设置,以防万一:我的表达是:

$.evalFile("/Users/myname/ae/functions.txt");

var p1  = thisComp.layer("Null 1").transform.position;
var p2  = thisComp.layer("Null 4").transform.position;
var p = p2 - p1;

printPosition(p)

我的 functions.txt 文件包含以下内容:

function printPosition (p){
    return " " + parseInt(p[0]) + " : " + parseInt(p[1])
}
于 2015-12-13T07:55:10.190 回答
0

一个有点老的问题,但我找到了一个没有外部文件的类似 ling 的解决方案。

  1. 为您的函数添加一个空层
  2. 添加标记并在评论中写下您的功能
  3. 在你的电话上调用 evalcomp->layer->marker->comment

在此处输入图像描述

当你想调用你的函数时,你只需要一行:

eval(thisComp.layer("FunctionLayer").marker.key(1).comment);
test(1);
于 2022-01-06T10:22:30.010 回答
-1

我不认为这是可能的。但是您可以通过将表达式保存为预设来完成很多工作(通过将实际图层属性拖动到“效果和预设”窗口。请注意,您可以通过选择它们并使用“动画”->“应用动画预设”将预设应用于多个图层功能

希望能有所帮助。

于 2015-10-17T12:09:00.660 回答