使用底部显示的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 }
答案 0 :(得分:1)
我认为这既不可能也不明智。每帧都会计算一个表达式。所以你会每帧读入并评估你的文件。
您可以尝试将文件内容存储在文本图层的源文本属性中,并从那里存储eval。但是,每个帧也会发生这种情况。
答案 1 :(得分:0)
差不多2年但是你可以通过后效表达式获得$ .evalFile。您正在获取函数文件未定义,因为函数不作为表达式中的对象存在。 $ .evalFile直接以字符串形式返回文件的文本数据。 FYI也在表达式中你必须使用绝对文件路径,并且表达式没有内置的YAML解析器。