Timer 与html兼容的计时器,不使用';不要在离焦时停顿?
我有一个libgdx项目,我希望将其部署到桌面和web上 我在项目中使用了Timer 与html兼容的计时器,不使用';不要在离焦时停顿?,timer,libgdx,Timer,Libgdx,我有一个libgdx项目,我希望将其部署到桌面和web上 我在项目中使用了com.badlogic.gdx.utils.Timer,但发现如果应用程序散焦,它会暂停。因此,我转而选择了java.util.Timer,它会一直滴答作响。 但是,这会在gwt下产生编译错误 因此,我正在寻找一个计时器解决方案上的指针,该解决方案既可以在两者上工作,也可以让应用程序“在后台”计数 观念 我是否以某种方式扩展/修改com.badlogic.gdx.utils.Timer 或者在core中使用java.u
com.badlogic.gdx.utils.Timer
,但发现如果应用程序散焦,它会暂停。因此,我转而选择了java.util.Timer,它会一直滴答作响。
但是,这会在gwt下产生编译错误
因此,我正在寻找一个计时器解决方案上的指针,该解决方案既可以在两者上工作,也可以让应用程序“在后台”计数
观念
- 我是否以某种方式扩展/修改
com.badlogic.gdx.utils.Timer
- 或者在core中使用
,但不知何故告诉gwt编译器使用不同的类java.util.Timer
- 替代品
com.badlogic.gdx.utils.Timer
,但如果您的应用程序将散焦,则它将暂停,因为您的任务安排在timerRead
上,该任务由LibGDX框架本身通过pause()
和resume()
生命周期方法管理。您需要覆盖ApplicationListener
的暂停方法,并自己启动计时器
@Override
public void pause() {
Timer.instance().start();
}
java.util.Timer
Trow gwt编译器错误,gwt上可能不支持我找到了一个使用gwt.xml配置文件的解决方案。 使用“super source”标记,您可以指定一个子包,该子包的内容将在其他地方代替java文件使用。 您必须确保子包完整的路径匹配,然后它才能完美工作 ie,这在我的gwt.xml中,位于com.lostagain.jamgdx
<!-- This overrides the default timer class in JamGdx-core with a gwt specific implementation -->
<!-- This is because the core method uses javas Timer out of preferance for its behavour, which gwt does not support. -->
<!-- The gwt class uses its own timer method instead. -->
<super-source path="gwtonly"/>
在gwt项目中。
(因为我的正常计时器位于核心中的
com.lostagain.jamgdx.implementations
)感谢您的回复。gwt不支持正确的javas计时器。不过,我对使用解决方案1犹豫不决,因为让计时器停止只是为了重新启动它似乎很愚蠢。幸运的是,我找到了另一个解决办法。
com.lostagain.jamgdx.gwtonly.com.lostagain.jamgdx.implementations