Так, є такий клас, дуже непримітний, але може бути дуже корисним :)
Він робить дивовижну річ. Після “запуску” видає в 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!") @ 0x042F0300
4554004 AVMINF: MTHD flash.display::MovieClip/stop () @ 0x0EF004D0
Дуже дякую 7thsky за допомогу!