現在のプロジェクトのAPIが乱雑にならないように、内部クラスを使用してオブジェクトの階層を作成したいと思います。基本的な考え方は、次のようなものを使用することです。
package foo {
public class Bar {
public static const BLUBB:Blubb = new Blubb();
public static const ZONK:Zonk = new Zonk();
}
}
class Blubb {
public const GNARF:Gnarf = new Gnarf();
public const BLUBB_BLAH:String = "blubb-blah";
}
class Gnarf {
public const GNARF_BLAH:String = "gnarf-blah";
}
class Zonk {
public const ZONK_BLAH:String = "zonk-blah";
}
私はそれを次のように使用できるようにsomeFunction(Bar.BLUBB.GNARF.GNARF_BLAH);
ただし、どうやらActionscriptはこの構成をまったく気に入っていないようで(FDT5はそれについての騒ぎを与えずにコンパイルしますが)、次のランタイムエラーが発生します。
Exception fault: TypeError: Error #1007: Instantiation attempted on a non-constructor.
at foo::Bar$cinit()
at global$init()
at ...
スタックトレースの残りの部分は、の静的定数のいずれかに最初にアクセスしようとしたポイントにつながりますBar
。
そのような方法で内部クラスを使用することは本当に不可能ですか、それとも私はいくつかの秘密のブードゥーを見逃しているだけですか?