Извините, ответ отрицательный (см. редактирование ниже). Функции получили специальное свойство под названием arguments
, а в AS2 раньше у них было свойство caller
, которое делало примерно то, что вы хотите. Хотя объект arguments по-прежнему доступен в AS3, свойство caller было удалено из AS3 (и, следовательно, из Flex 3), поэтому нет прямого способа сделать то, что вы хотите. Также рекомендуется использовать параметр [...rest](http://livedocs.adobe.com/flex/3/langref/statements.html#..._(rest)_parameter) языковая функция вместо аргументы.
Вот справка по этому вопросу (выполните поиск callee, чтобы найти соответствующие подробности).
Изменить: Дальнейшее исследование показало, что можно получить трассировку стека для текущей выполняемой функции, поэтому, если вам повезет, вы сможете что-то с этим сделать. См. эту запись в блоге и < href="http://tech.groups.yahoo.com/group/flexcoders/message/58388" rel="noreferrer">это сообщение на форуме для получения более подробной информации.
Основная идея из сообщения в блоге заключается в том, что вы выдаете ошибку, затем немедленно ее перехватываете, а затем анализируете трассировку стека. Некрасиво, но это может сработать для вас.
код из сообщения в блоге:
var stackTrace:String;
try { throw new Error(); }
catch (e:Error) { stackTrace = e.getStackTrace(); }
var lines:Array = stackTrace.split("\n");
var isDebug:Boolean = (lines[1] as String).indexOf('[') != -1;
var path:String;
var line:int = -1;
if(isDebug)
{
var regex:RegExp = /at\x20(.+?)\[(.+?)\]/i;
var matches:Array = regex.exec(lines[2]);
path = matches[1];
//file:line = matches[2]
//windows == 2 because of drive:\
line = matches[2].split(':')[2];
}
else
{
path = (lines[2] as String).substring(4);
}
trace(path + (line != -1 ? '[' + line.toString() + ']' : ''));
person
James Fassett
schedule
11.10.2008