After Effects Expression可以读取文件的内容吗?

时间:2015-02-03 19:17:37

标签: expression after-effects

使用底部显示的ExtendScript,我可以打开一个YAML文件并解析它。

但是,当在After Effects表达式中输入相同的代码时,它在第2行失败,说“函数文件未定义”。

Expression可以打开文件并以某种方式读取原始内容吗?

我知道$ .evalFile可以读取文件,但它eval() - 一切,我希望能够只读取文件的原始内容。在我的情况下,我希望将内容传递给YAML解析器。

1    $.evalFile("yaml.js");
2    var file = File("/tmp/example.yml");
3    if (file.exists){
4      file.open('r');
5      var contents = file.read();
6      var myObject = YAML.eval(contents);
7      alert myObject.company.name
8    }    

2 个答案:

答案 0 :(得分:1)

我认为这既不可能也不明智。每帧都会计算一个表达式。所以你会每帧读入并评估你的文件。

您可以尝试将文件内容存储在文本图层的源文本属性中,并从那里存储eval。但是,每个帧也会发生这种情况。

答案 1 :(得分:0)

差不多2年但是你可以通过后效表达式获得$ .evalFile。您正在获取函数文件未定义,因为函数不作为表达式中的对象存在。 $ .evalFile直接以字符串形式返回文件的文本数据。 FYI也在表达式中你必须使用绝对文件路径,并且表达式没有内置的YAML解析器。