Étant donné que ExtendScript, tel qu'il est implémenté dans After Effects, ne semble pas prendre en charge de nombreux membres Fonction tels que "Function.caller", existe-t-il un autre moyen permettant de voir le nom de la fonction appelante, cela fonctionne pour AE CS5.5 vers le haut? Les librairies intégrées ou externes seraient géniales.After Effects/ExtendScript Function.caller équivalent
1
A
Répondre
0
Si vous voulez que le nom de la fonction de roulement (callee), vous pouvez le faire avec:
arguments.callee.name
Exemple:
function someFuncName() {
$.write(arguments.callee.name);
}
someFuncName();
//Result: someFuncName
Dans votre cas (où vous avez besoin du nom de la fonction de l'appelant), ExtendScript n'a pas intégré la fonction qu'il fait, vous devez en créer un:
function caller() {
var stack = $.stack.split('\n');
return stack.length === 4 ? null : stack[stack.length - 4].slice(0, -2);
}
maintenant, si nous avons une fonction celle invoquée par le code de haut niveau, nous allons donc obtenir nulle, sinon on obtient le nom de la fonction de l'appelant:
Exemple:
function someFuncName() {
$.write(caller());
}
function callerFuncName() {
someFuncName();
}
callerFuncName(); //Result: callerFuncName
someFuncName(); //Result: null