Question

Comment puis-je énumérer tous les noms (et valeurs) public (et privé / protégé) const définie dans une classe?

public class Layers {

    public const BACKGROUND:String = "background";
    public const PARENT:String = "parent";
    public const MAP:String = "map";
    public const LINES:String = "lines";
    public const POINTS:String = "points";
    public const WINDOWS:String = "windows";

    ... 

    public function isValidValue(type:String) {
        // ...           
        // if type is a value of a constant return TRUE
        // ...
    }

}
Était-ce utile?

La solution

Lors de l'exécution, vous pouvez utiliser describeType () à la liste de tous les publics vars (pas trop sûr de consts), et beaucoup plus d'informations aussi.

http: //www.adobe. com / LiveDocs / flash / 9.0 / ActionScriptLangRefV3 / flash / utils / package.html # describeType ()

Privates sont plus difficiles à obtenir.

Je ne sais pas si ce ne serait pas plus rapide pour créer un tableau des constantes puis utilisez Array.indexOf (type)

P.S. Je crois aussi qu'il existe une version JSON de describeType () maintenant, quelque part.

Autres conseils

Cela fonctionne avec AS3 et Flex 4.5.1

public static function isValidValue(type:String):Boolean {

        var m_constNameList:XMLList = describeType(Layers).descendants("constant");

        for each(var obj:Object in m_constNameList){
            if (type == Layers[obj.@name]){
                return true;
            }
        }
        return false;
    }

FlashBuilder autocomplétion vous donnera toute la constante de votre classe et bien plus encore.

http://www.adobe.com/products/flashbuilder/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top