Извините, ответ - нет (см. Ниже). Функции получили специальное свойство, называемое arguments
, а в AS2 оно имело свойство caller
, которое примерно соответствовало бы вашему желанию. Хотя объект arguments по-прежнему доступен в AS3, свойство вызывающего было удалено из AS3 (и, следовательно, Flex 3), поэтому нет прямого способа сделать то, что вы хотите. Также рекомендуется использовать [... rest параметр] (http://livedocs.adobe.com/flex/3/langref/statements.html#..._(rest)_parameter) языковая функция вместо arguments .
Вот ссылка по этому вопросу (найдите вызываемого, чтобы найти соответствующие подробности).
Редактировать: Дальнейшие исследования показали, что можно получить трассировку стека для текущей выполняемой функции, поэтому, если вам повезет, вы можете что-то с этим сделать. См. эту запись в блоге и это сообщение на форуме для получения более подробной информации.
Основная идея из поста в блоге заключается в том, что вы выдаваете ошибку, а затем сразу же ее перехватываете и анализируете трассировку стека. Ужасно, но это может сработать для тебя.
код из поста в блоге:
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() + ']' : ''));