由于After Effects中实现的ExtendScript似乎不支持许多函数成员,如“Function.caller”,是否有另一种已知的方法可以让您看到调用函数的名称,这适用于AE CS5.5向上?内置或外部库都很棒。
答案 0 :(得分:0)
如果你想要正在运行的函数名称(被调用者),你可以使用:
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