Как я могу перечислить все состочные свойства, определенные в классе
-
28-09-2019 - |
Вопрос
Как я могу перечислить все имена (и значения) общественных (и частных / защищенных) 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 даст вам всю константу на вашем классе и намного больше.
Не связан с StackOverflow