javascript - After Effects/ExtendScript Function.caller 等效项

标签 javascript extendscript after-effects

由于 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/

相关文章:

javascript - 具有模糊轮廓的传单多边形

javascript - 如何检测是否在按下键盘按键的情况下单击了按钮? (按住 Ctrl 键单击、按住 Alt 键单击等)

javascript - 后效应 : Javascript - Undefined value used in the expression(Could be out of range array subscript)

javascript - 尝试读取大文件时,Chrome HTML5 FileReader 崩溃

javascript - 为什么我的 Javascript 程序中的 Array.sort() 方法不稳定?

javascript - 使 TouchableOpacity 在开始滚动时不突出显示元素 [React Native]

javascript - After Effects 对象模型是否可用于在 Adob​​e ExtendScript Toolkit 之外进行测试?

photoshop - 使用 Photoshop 脚本 (JSX) 显示/隐藏图层的功能

javascript - After Effects 应用预设 : bad path

javascript - After Effects 脚本编辑器的控制台仅记录 for 循环中的最后一个对象