我想使用内部类来创建对象层次结构以避免混乱我当前项目的 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
.
真的不可能以这种方式使用内部类,还是我只是错过了一些秘密的巫术?