Проблема была вызвана отсутствием идентификатора (#page
) для тела.
Я использую следующее:
private function getFunctionName(e:Error):String {
var stackTrace:String = e.getStackTrace(); // entire stack trace
var startIndex:int = stackTrace.indexOf("at ");// start of first line
var endIndex:int = stackTrace.indexOf("()"); // end of function name
return stackTrace.substring(startIndex + 3, endIndex);
}
Использование:
private function on_applicationComplete(event:FlexEvent):void {
trace(getFunctionName(new Error());
}
Вывод: FlexAppName/on_applicationComplete ()
Больше информации о технике может быть найдено на сайте Alex:
Я не знаю, помогает ли это, но может получить ссылку на вызывающую сторону функции, какие аргументы (насколько я знаю только в ActionScript 3).
Имя? Нет, Вы не можете. Что можно сделать, однако тест ссылка. Что-то вроде этого:
function foo()
{
}
function bar()
{
}
function a(b : Function)
{
if( b == foo )
{
// b is the foo function.
}
else
if( b == bar )
{
// b is the bar function.
}
}
Вы просто ищете ссылку так, чтобы можно было вызвать функцию снова после? Если так, попытайтесь установить функцию на переменную как ссылка. var lastFunction:Function;
var func:Function = function test():void
{
trace('func has ran');
}
function A(pFunc):void
{
pFunc();
lastFunction = pFunc;
}
A(func);
Теперь, если необходимо сослаться на последнюю функцию, работал, можно сделать так просто посредством вызова lastFunction.
Я не уверен точно, что Вы пытаетесь сделать, но возможно это может помочь.