0

クラスで定義された 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
        // ...
    }

}
4

3 に答える 3

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;
    }
于 2011-07-19T14:24:32.627 に答える
1

実行時に、describeType() を使用して、すべての public 変数 (const についてはよくわかりません) と、さらに多くの情報を一覧表示できます。

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

プライベートは取得するのがより難しいです。

定数の配列を作成してから array.indexOf(type) を使用する方が速くないかどうかはわかりません

PS また、describeType() の JSON バージョンがどこかにあると思います。

于 2010-10-06T10:48:10.063 に答える
0

FlashBuilder のオートコンプリートは、クラスのすべての定数などを提供します。

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

于 2010-10-06T10:45:04.473 に答える