Как я могу перечислить все состочные свойства, определенные в классе

StackOverflow https://stackoverflow.com/questions/3871576

Вопрос

Как я могу перечислить все имена (и значения) общественных (и частных / защищенных) const, определенных в классе?

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
        // ...
    }

}
Это было полезно?

Решение

Во время выполнения вы можете использовать Distangeetype (), чтобы перечислить все публичные VAR (не слишком уверен в Consts), а также намного больше информации.

http://www.adobe.com/livedocs/flash/9.0/4.4.04/UTILS/Package.html#describeType.()

Причины более сложны, чтобы получить.

Не уверены, если бы не было бы быстрее создать массив констант, а затем использовать array.indexof (тип)

PS Я также верю, что есть JSON версия Condityetype () сейчас, где-то.

Другие советы

Это работает с AS3 и 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;
    }

AutoCollection FlashBuilder даст вам всю константу на вашем классе и намного больше.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top