est� muy interesante, tienes la versi�n as1(mx) ?
asias
---------- Original Message -----------
From: "Manuel de la Higuera" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tue, 18 Nov 2003 12:00:14 +0100
Subject: [ASNativos] Logger (as2)
> Hola a todos:
> He hecho una clase para loggear procesos en AS2 que puede resultar de
> inter�s. Est� sin documentar --lo siento, soy as�-- pero no es
> dif�cil ver el funcionamiento a partir del c�digo.
>
> Ej:
> import as.util.Logger;
> Logger.addItem("Esto es item del log");
> Logger.addItem("Esto es un item del tipo 'prueba'","prueba");
> Logger.addItem("Otro �tem de prueba","prueba");
> Logger.traceAll();
> /* trace
> [main] Esto es item del log
> [prueba] Esto es un item del tipo 'prueba'
> [prueba] Otro �tem de prueba
> */
>
> Logger.traceLast(5,"prueba");
> /* trace
> [prueba] Esto es un item del tipo 'prueba'
> [prueba] Otro �tem de prueba
> */
>
> Y el c�digo:
>
> --- 8< ----
> class as.util.Logger {
> static private var $logs,$nameTypes,$outputArray:Array;
> static private var $types:Object;
> static private var $main:String = "main";
> static private var $leftDeco:String = "[";
> static private var $rightDeco:String = "]";
> static private var $assignType:Number = 0;
>
> static public function addItem(log:String,type:String):Void {
> var obj:Object = new Object();
> obj.type = $getType(type);
> obj.log = log;
> $getInstance().push(obj);
> }
>
> static public function traceAll(type:String):Void {
> $initOutput();
> if (type != undefined) var idType:Number = $getType(type);
> for (var i=0; i<$getInstance().length; i++) {
> if ($isType(i,idType) || idType == undefined) {
> $outputArray.push($getOutput(i));
> }
> }
> $output();
> }
>
> static public function traceLast(num:Number,type:String):Void {
> $initOutput();
> if (type != undefined) var idType:Number = $getType(type);
> var currentItem:Number = $getInstance().length-1;
> var i:Number = 0;
> while (i < num && currentItem >= 0) {
> if ($isType(currentItem,idType) || idType == undefined) {
> $outputArray.push($getOutput(currentItem));
> i++;
> }
> currentItem--;
> }
> $outputArray.reverse();
> $output();
> }
>
> static private function $getInstance():Array {
> if ($logs == undefined) {
> $logs = new Array;
> }
> return $logs;
> }
>
> static private function $initOutput():Void {
> $outputArray = new Array();
> }
>
> static private function $output() {
> for (var i=0; i<$outputArray.length; i++) {
> trace($outputArray[i]);
> }
> }
>
> static private function $getType(type:String):Number {
> if ($types == undefined) $types = new Object();
> if ($nameTypes == undefined) $nameTypes = new Array();
> if ($types[type] == undefined) {
> $types[type] = ($assignType++);
> $nameTypes.push(type);
> }
> return $types[type];
> }
>
> static private function $getTypeName(index:Number):String {
> var tmpType = $nameTypes[$getInstance()[index].type];
> if (tmpType == undefined) {
> return $formatTypename($main);
> }else{
> return $formatTypename(tmpType);
> }
> }
>
> static private function $getMsg(index:Number):String {
> return $getInstance()[index].log;
> }
>
> static private function $formatTypename(msg:String):String {
> return ($leftDeco + msg + $rightDeco);
> }
>
> static private function $formatMsg(msg:String):String {
> return (msg);
> }
>
> static private function $getOutput(index:Number):String {
> return $getTypeName(index) + " " + $getMsg(index);
> }
>
> static private function $isType(index:Number,typeNum:Number)
> :Boolean { return ($getInstance()[index].type == typeNum); } }
> --- 8< ----
>
> <!-------------------------------
> Lista ASNativos:
> subscripciones/desubscripciones
> http://www.sidedev.net/asnativos
> -------------------------------->
------- End of Original Message -------
<!-------------------------------
Lista ASNativos:
subscripciones/desubscripciones
http://www.sidedev.net/asnativos
-------------------------------->