функция actionscript может узнать свое собственное имя?

Проблема была вызвана отсутствием идентификатора (#page) для тела.

12
задан 2 April 2009 в 20:09
поделиться

4 ответа

Я использую следующее:

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:

http://blogs.adobe.com/aharui/2007/10/debugging_tricks.html

15
ответ дан 2 December 2019 в 05:55
поделиться

Я не знаю, помогает ли это, но может получить ссылку на вызывающую сторону функции, какие аргументы (насколько я знаю только в ActionScript 3).

0
ответ дан 2 December 2019 в 05:55
поделиться

Имя? Нет, Вы не можете. Что можно сделать, однако тест ссылка. Что-то вроде этого:

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.
   }
}
2
ответ дан 2 December 2019 в 05:55
поделиться

Вы просто ищете ссылку так, чтобы можно было вызвать функцию снова после? Если так, попытайтесь установить функцию на переменную как ссылка. var lastFunction:Function;

var func:Function = function test():void
{
    trace('func has ran');
}

function A(pFunc):void
{
    pFunc();
    lastFunction = pFunc;
}
A(func);

Теперь, если необходимо сослаться на последнюю функцию, работал, можно сделать так просто посредством вызова lastFunction.

Я не уверен точно, что Вы пытаетесь сделать, но возможно это может помочь.

0
ответ дан 2 December 2019 в 05:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: