Phonegap画布刷新率低

时间:2014-02-09 11:15:34

标签: javascript android performance canvas cordova

我正在构建一个基于画布的网页游戏,在桌面上以60fps的速度运行。它在Android上的chrome运行速度为60fps。我将它加载到一个phonegap应用程序中,fps表仍然读取60fps,但屏幕只是每隔几个滴答一次。是否存在刷新率限制器,迫使webview仅每秒钟绘制一次?还有什么其他的东西可以限制我的绘图,即使网站说它的重绘速度为60fps?

2 个答案:

答案 0 :(得分:5)

默认情况下,PhoneGap将使用内置的默认浏览器,这不是chrome,除非您使用的是KitKat,但这是另一回事。

现在我在使用默认浏览器时遇到问题,即使是在获得用户签名的小型画布项目上,但这是由于触发火灾的速度很低......

无论如何,可能的解决方案是强制phonegap使用WebChromeClient而不是默认的,你可以通过在super.loadUrl调用之前添加以下行来实现:

appView.setWebChromeClient(new WebChromeClient());

如果您强制使用WebChromeClient,请确保在需要时启用javascript,本地存储等等。还有一些PhoneGap插件可能会中断。如果你的游戏是纯HTML5而不是我建议考虑不使用phonegap为你的Android版本,建立一个简单的WebView应用程序在Android中很容易。

此外,如果您的游戏打算使用加速度传感器,请查看对浏览器的原生支持:Can I Use resources

此外,我一定会阅读THISTHIS

希望它有所帮助。 埃米尔

答案 1 :(得分:1)

可悲的是,新的Webview与Chrome没有完全相同的功能。其中一个差异是Chrome使用的WebGL 3D画布。有关新Webview和Chrome之间功能差异的列表,请参阅here