Je suppose que la plupart des codeurs ont leur classe de debug. Voici la mienne, a peine commencée. Il s'agit uniquement d'un dump d'un objet. La méthode un objet recursivement pour afficher l'ensemble de ses propriétés. Il gère également le fait qu'on ait pu mettre le nom de la classe dans une variable statique (par défaut __className).

/**
* Debug
* @version 0.1
* @package com.lalex.utils
*
* @author <a href="http://www.lalex.com/">LAlex</a>
* @since 2005-07-19
*/

class com.lalex.utils.Debug {
        /**
        * Property used to store class names
        */

        public static var classNameProperty:String = "__className";
        /**
        * Trace an object detailled content
        * @param o Object to display
        */

        public static function dump(o) {
                _global.trace(dumpToString(o));
        }
        /**
        * Return a string containing the object content. Recursive method
        * @param o Target object
        * @param d Depth. Used to generate tabs
        */

        private static function dumpToString(o, d:Number):String {
                d = d ? d : 0;
                var dp:Number = d;
                var sp:String = "";
                while (d-- > 0) {
                        sp += "  ";
                }
                if (typeof o == "object") {
                        var ret:String = "[";
                        if ( o["__constructor__"][classNameProperty] ) {
                                ret += o["__constructor__"][classNameProperty];
                        } else if (o instanceof Array) {
                                ret += "Array";
                        } else {
                                ret += "Object";
                        }
                        ret += "
"
+ sp;
                        for (var p in o) {
                                if (typeof p != "function") {
                                        ret += p + ": " + dumpToString(o[p], dp+1) + "
"
+ sp;
                                }
                        }
                        ret += "]";
                        return ret;
                } else {
                        return o.toString();
                }
        }
}

Une suite à cette classe est prévue, avec pitet' même une petite surprise... ;)

::Télécharger Debug01.zip::