由于 After Effects 中实现的 ExtendScript 似乎不支持许多 Function 成员,例如“Function.caller”,是否有另一种已知的方法可以让您看到调用函数的名称,该方法适用于 AE CS5.5 及以上版本?内置或外部库都很棒。
最佳答案
如果你想要运行的函数名称(被调用者),你可以这样做:
arguments.callee.name
示例:
function someFuncName() {
$.write(arguments.callee.name);
}
someFuncName();
//Result: someFuncName
在您的情况下(您需要调用者函数名称),ExtendScript 没有内置函数来执行此操作,因此您需要创建一个:
function caller() {
var stack = $.stack.split('\n');
return stack.length === 4 ? null : stack[stack.length - 4].slice(0, -2);
}
现在,如果我们有一个由顶层代码调用的函数,那么我们将得到 null,否则我们得到调用者函数名称:
示例:
function someFuncName() {
$.write(caller());
}
function callerFuncName() {
someFuncName();
}
callerFuncName(); //Result: callerFuncName
someFuncName(); //Result: null
关于javascript - After Effects/ExtendScript Function.caller 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36430143/