Показать сообщение отдельно
Старый 03.09.2005, 17:11
7thsky™ вне форума Посмотреть профиль Отправить личное сообщение для 7thsky™ Найти все сообщения от 7thsky™
  № 5  
Ответить с цитированием
7thsky™
Flash Aксакал
 
Аватар для 7thsky™

Регистрация: Jun 2005
Сообщений: 636
можно добавить в Object.prototype, но функция должна называться по другому, так как это не метод объекта а глобальная функция, такая как gotoAndPlay, gotoAndStop, stop, play

Код:
class Logger {
	public static var __instance:Logger = null;
	public static var __defaultLevel:Number = 0;
	public static var __defaultMessage:String = '>> default message';
	
	public var INFO:Number = 0;
	public var DEBUG:Number = 1;
	public var WARN:Number = 2;
	public var ERROR:Number = 3;
	public var FATAL:Number = 4;
	public var SERVER_IN:Number = 5;
	public var SERVER_OUT:Number = 6;
	
	private var __records:Array = new Array ();
	
	public function Logger () {
	}
	
	public function traceIt (level:Number, msg:String):Void {
		// new Record
		var o:LoggerRecord = new LoggerRecord (level, msg);
		// push message
		__records.push (o);
		
		var levels:Array = ['INFO', 'DEBUG', 'WARN', 'ERROR', 'FATAL', 'SERVER_IN', 'SERVER_OUT'];
		trace (levels [level] + ' >> ' + msg);
	}
	
	public static function init (flag:Boolean):Void {
		var t:Object = Object.prototype;
		
                 if (__instance == null) {
			t.log = __instance = new Logger ();
		} // end if
	}
}

class LoggerRecord {
	public var level:Number = null;
	public var message:String = null;
	public var time:Number = null;
	
// -------------------------------------------------
// Constructor
// -------------------------------------------------
	public function LoggerRecord (logLevel:Number, logMessage:String) {
		// set Level
		level = (logLevel == undefined || isNaN (Number (logLevel))) ? Logger.__defaultLevel: logLevel;
		
		// set mesage
		message = (typeof logMessage != 'string') ? Logger.__defaultMessage : logMessage;
		
		// set time
		time = new Date ().getTime();
	}
}

Logger.init ();
log.traceIt (log.ERROR, 'опа Aшибка');
например что-то типа этого, если ты пользуешь AS1, то ни каких проблем, если в АС2, то надо в базовый класс добавить
public static var log:Logger;


Последний раз редактировалось 7thsky™; 03.09.2005 в 17:17.