在OpenFL 2.2.1应用程序中,我使用的库需要在退出时清理(即关闭套接字,使其在某些超时之前不会挂起)。
但是,当我用Alt+F4或窗口的关闭按钮关闭窗口时,我找不到任何调用的事件。
如何检测应用程序正在终止,以便清理我的资源?
发布于 2015-12-16 06:48:55
要回答关于openfl-next的问题,有一个lime.app.Application.onExit事件,它继承自lime.app.Module。Application引用存储在openfl.display.Stage.application实例字段中。
因此,该函数的多版本变体如下:
static function setExitHandler(func:Void->Void):Void {
#if openfl_legacy
openfl.Lib.current.stage.onQuit = function() {
func();
openfl.Lib.close();
};
#else
openfl.Lib.current.stage.application.onExit.add(function(code) {
func();
});
#end
}然后你就会
setExitHandler(function() {
trace("Quit!");
});发布于 2015-01-03 21:17:02
部分答案将是回到遗留的OpenFL (使用-Dopenfl-legacy或<haxedef name="openfl-legacy" />)。
这个技巧迫使编译器使用前一个API,它启用了Lib.stage.onQuit。
public static function main():Void
{
// …
Lib.stage.onQuit = onClose;
// …
}
private static function onClose()
{
// …
// Cleanup of opened resources
// …
Lib.close();
}一定要打电话给Lib.close(),否则你的窗口就不能再关闭了!
然而,这并没有回答我对于较新的openfl-next的问题。
https://stackoverflow.com/questions/27758821
复制相似问题