我是Haxe的新手,可能这是一个非常基本的问题,我无法真正找到答案。
我看到三种调用主类的方法:
1)使用main()
//Entry point
public static main():void{
//do something...
}
2)使用构造函数new()
//Constructor
public function new(){
// init
}
3)同时使用main()和new()
static function main()
{
Lib.window.onload = function(e) new Main();
}
public function new()
{
//init
}
是否有使用指南或最佳做法?
由于
答案 0 :(得分:8)
解决所有3:
加分:
static function main() { new Main(); }
运行特定于平台的初始化Boot.__init()
初始化方法的类static function __init__()
功能已执行main()
参数,但类路径/名称作为参数(例如-main Main
)且没有haxe my.pack.MyClass
,则编译该类,但它不会自动运行。如果您正在创建一个库或类似的东西,这可能很有用 - 您的类就在那里,但它需要由其他一些Javascript等显式调用。在Javascript中,Haxe代码一旦加载就开始运行,可能在DOM准备好之前。这就是为什么这样做的好主意:
public static function main()
正如您在示例中所做的那样,如果您希望代码在 DOM准备就绪后运行,这是一个好主意。无论是在加载时你调用另一个静态函数,还是实例化static function main() {
js.Lib.window.onload = function(e) { runMyApp(); }
}
并从那里运行你的应用程序,这取决于你。