Как я могу перечислить все свойства const, определенные в классе - PullRequest
0 голосов
/ 06 октября 2010

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

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

}

Ответы [ 3 ]

2 голосов
/ 19 июля 2011

Работает с 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;
    }
1 голос
/ 06 октября 2010

Во время выполнения вы можете использовать descriptionType (), чтобы вывести список всех публичных переменных (не слишком уверенных в отношении контентов), а также многое другое.

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

Привилегии получить сложнее.

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

P.S. Я также полагаю, что где-то сейчас существует JSON-версия descriptionType ().

0 голосов
/ 06 октября 2010

Автозаполнение FlashBuilder даст вам все постоянные в вашем классе и многое другое.

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

...