如何列出类中定义的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
// ...
}
}
答案 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自动完成功能将为您提供课堂上的所有常量等等。