如何列出类中定义的所有const属性

时间:2010-10-06 10:32:04

标签: flash actionscript-3 const constants enumerator

如何列出类中定义的public(和private / protected)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
        // ...
    }

}

3 个答案:

答案 0 :(得分:2)

这适用于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 :(得分:1)

在运行时,您可以使用describeType()列出所有公共变量(不太确定consts),以及更多信息。

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

获得私人服务更加棘手。

不确定是否更快创建常量数组然后使用array.indexOf(type)

P.S。我也相信现在有一个版本的describeType(),某处。

答案 2 :(得分:0)

FlashBuilder自动完成功能将为您提供课堂上的所有常量等等。

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