Я придумал довольно эффективный, но утомительный способ использования моей собственной функции trace () в проектах только Flash, но вызывал ее просто с помощью
trace("this", "that", "and that too");
Я в основном реализую один метод trace () в каждом классе моего проекта, который вызывает публичную функцию (чтобы я мог оттуда вызывать реальную функцию trace ().
вот что я делаю: в каждом классе я называю это
include "trace_implementation.as";
в файле .as содержится простая реализация метода (это может быть и статический метод).
public function trace(... arguments){
for(var i in arguments){
myTrace(arguments[i]);
}
}
и функция myTrace определена в ее собственном файле myTrace.as
package pt.utils{
import flash.external.ExternalInterface
public function myTrace(_s:String):void{
trace(_s);// this will call the original flash trace() function
ExternalInterface.call("console.log", _s);// to get traces outside of flash IDE
/*implement what you want here*/
}
}
так что теперь, когда я компилирую с помощью "опустить действия трассировки", вся моя отладка игнорируется, как если бы я просто использовал trace ().
действительно хорошая сторона в том, что вы можете реализовывать пользовательские действия в зависимости от инструкций, которые вы даете в трассировке, поэтому:
trace(Debug.DEBUG_MESSAGE, "message to output in debug");
trace(Profile.START_PROFILING, this, 'name');
/*do heavy code*/
trace(Profile.STOP_PROFILING, this);
затем отправьте его из myTrace, или из класса Tracer, или из чего-либо еще:)
Надеюсь, это поможет будущим трассировщикам.