Pour ceux qui ne lisent pas la mailing-list de OSFlash, Ralf Bokelberg y donne une petite astuce pour tester la classe d'une variable, et de manière plus globale comment éviter une succession de if...else if...else.

En fait, le switch...case a pour limitation de ne servir qu'à comparer une valeur à une autre (ou plusieurs autres), alors qu'un if va vérifier si une condition est vraie. Mais, et c'est là qu'est l'astuce, vérifier si une condition est vraie consiste uniquement à comparer son résultat à true... et voila! 8) Petit exemple:public static function getEnvironement(eng : Engine) : String {
        var env:String = "Twilight zone";
        switch(true) {
                case (eng instanceof Boat):
                        env = "Water";
                        break;
                case (eng instanceof Car):
                case (eng instanceof Motorcycle):
                case (eng instanceof Bus):
                        env = "Road";
                        break;
                case (eng instanceof Plane):
                        env = "Sky";
                        break;
                case (eng instanceof Spacecraft):
                        env = "Outerspace";
                        break;
                default:
                        trace("ET???");
        }
        return env;
}

C'est peut-être connu, et certainement utilisable dans de nombreux langages, mais moi j'ai découvert aujourd'hui, et je trouve l'astuce bien élégante! ^^