Du temps de mon premier pathfinder, j'avais crée une petit classe Point2, qui contenait des coordonnées. Je voulais également qu'elle soit dynamique, afin d'y mettre les propriétés que je voulait. Le problème était de taper 15 lignes de codes s'il y avait un nombre important de propriétés, et j'ai donc crée cette petite méthode setter pour me faciliter la vie.

dynamic class Dummy {
        function Dummy() {
                // ....
        }
        function set props(o:Object) {
                for (var curProp in o) {
                        this[curProp] = o[curProp];
                }
        }
        function get props():String {
                var prStr:String = "{ ";
                var writeComma:Boolean = false;
                for (var curProp in this) {
                        prStr += writeComma ? "," : "";
                        prStr += curProp+":"+this[curProp]+" ";
                        writeComma = true;
                }
                prStr += "}";
                return prStr;
        }
}
Rien de bien fantastique dans ces quelques lignes, mais c'est son utilisation qui est bien pratique :var myObj = new MyClass();
myObj.props = {name:"LAlex", x:10, y:20};
trace(myObj.name); // LAlex
trace(myObj.x); // 10
trace(myObj.props); // {y:20 ,x:10 ,name:LAlex }

Evidemment, ce n'est pas ce qu'il y a de plus "propre", mais ca peut aider a faire des raccourcis dans le code assez pratiques. :) Ca ne peut également pas être utilisé pour des initialisation multiples comme a=b=c. Pour pouvoir faire cela, il aurait fallu pouvoir retourner une valeur dans le setter, mais ce n'est pas possible comme je l'ai déjà dit dans ce blog ... :( Alors tant qu'à faire, autant que ca serve pour faire un affichage "pratique" ! 8)