Да, есть такой класс, очень не приметный, но может быть очень полезным
Он делает отличную штуку :). После “запуска” выдаёт в output имена ВСЕХ! методов, которые запускаются с именами классов к которым они принадлежат. Класс не документирован, т.е. как с ним работать я не знаю (google тоже ничего не говорит), но методов проб и ошибок что-то удалось выяснить.
Вот все его методы (класс статический, т.е. все методы - статические):
- Trace.setLevel(l:int, target:int=2):Object
- Trace.getLevel(target:int=2):int
- Trace.setListener(f:Function):Object
- Trace.getListener():Function;
Trace.setLevel(l:int, target:int=2):Object
Устанавливает уровень вещания и цель вещания.
Первым параметром может быть одна из констант:
- Trace.METHODS_AND_LINES_WITH_ARGS = 4
- Название метода с входными параметрами и номер строки в коде с путём к класс, в котором был запущен метод
- Trace.METHODS_AND_LINES = 3
- Название метода и номер строки
- Trace.METHODS_WITH_ARGS = 2
- Название метода с входными параметрами
- Trace.METHODS = 1
- Trace.OFF = 0
Вторым параметром может быть:
- Trace.LISTENER = 2
- Вещать в функцию, заданную с помощью setListener().
- Trace.FILE = 1
Trace.getLevel(target:int=2):int
Возвращает уровень вещания для цели.
Trace.setListener(f:Function):Object
Устанавливает функцию-листенер при цели вещания = Trace.LISTENER.
Функция должна принимать 4 параметра:
- private function traceListener(
- fileInfo:String,
- lineNumber:String,
- classAndMethod:String,
- methodArguments:String
- ):void
fileInfo - папка, где находится файл + “;” + что-то ещё (у меня была пустая строка)
+ “;” + имя файла.
Пример: “D:\Projects\ForTestsF3\src;;ForTestsF3.mxml”
lineNumber - номер строчки
classAndMethod - полное имя класса + (”/” || “$/” ) + имя метода.
Примеры: “flash.display::DisplayObjectContainer/addChild”
“flash.trace::Trace$/setListener” - “$/” используется, если метод статичный
methodArguments -входные параметры метода, разделённые запятой (,). Но если параметры заданы с помощью rest оператора (…), то они показаны не будут.
Trace.getListener():Function
Возвращает, заданную раньше, функцию-листенер.
Вот пример:
- import flash.trace.Trace;
- function test(t:String):String
- {
- return t;
- }
- Trace.setLevel(Trace.METHODS_WITH_ARGS, Trace.FILE);
- var st:String = “hello!”;
- test(st);
- stop();
В output увидите:
- 14554003 AVMINF: MTHD Untitled_fla::MainTimeline/test (”hello!”) @ 0×042F0300
- 4554004 AVMINF: MTHD flash.display::MovieClip/stop () @ 0×0EF004D0
Огромное спасибо 7thsky за помощь!