Я создаю служебную функцию для отладки / журналов, доступ к которой осуществляется путем импорта класса и вызова
new Log(params);
В качестве альтернативы я изменяю функцию на статическую и переименовываюIt
,
, тогда я могу позвонить по номеру Log.It(params)
Мне интересно, можно ли его настроить, чтобы я мог просто позвонить Log(params)
, аналогично trace
команда?
функция:
package
{
public class Log
{
/** Gets the name of the function which is calling */
public function Log(prefix:String = "", suffix:String = "", params:* = null):void
{
var error:Error = new Error();
var stackTrace:String = error.getStackTrace(); // entire stack trace
var startIndex:int = stackTrace.indexOf("at ", stackTrace.indexOf("at ") + 1); //start of second line
var endIndex:int = stackTrace.indexOf("()", startIndex); // end of function name
var lastLine:String = stackTrace.substring(startIndex + 3, endIndex);
var functionSeperatorIndex:int = lastLine.indexOf('/');
var ClassSeperatorIndex:int = lastLine.indexOf(':');
var objectName:String = lastLine.substring(ClassSeperatorIndex+2, functionSeperatorIndex);
var functionName:String = lastLine.substring(functionSeperatorIndex + 1, lastLine.length);
//TODO: Loop through params
trace(prefix +" " + "[" + objectName + "]" + " > " + functionName + " " + suffix);
//TODO: Log to Array
//TODO: Dispatch Event
}
}
}