【发布时间】:2019-09-08 14:26:09
【问题描述】:
有一个网站,其中有用于操作画布的小脚本。 例如,一些数学很好的动画分形。 所有代码都在 JavaScript 中。
现在我正在制作一个应用程序来让这些脚本在 Android 上运行, 但因为它是纯 JavaScript,我无法将代码转换为 Android-Java 来操作 SurfaceView。
我制作了一个 SurfaceView 和一个(隐藏的)WebView。 Webview 运行动画的 JavaScript 代码。在 WebView 中我还注入了一个接口(参见JavascriptInterface),这样我就可以使用 Javascript 来触发可以操作 SurfaceView 的函数。
有效!!!但并不完美。
function u(t){
c.width=1920 // clear the canvas
for(i=0;i<9;i++)
x.fillRect(400+i*100+S(t)*300,400,50,200) // draw 50x200 rects
}
这发生在网站上。当我将 JavaScript 代码转换为非 JavaScript Android 代码 (Java) 时会发生这种情况。
它也适用于 JavaScript,但是当我这样做时,Surface 开始闪烁。一根柱子你已经看得很清楚了,但是这 9 根柱子就很糟糕了。
我不知道该怎么办,因为当我不使用 JavaScript 时它可以工作,但是当我使用 JavaScript 时,它会闪烁。
希望有办法解决这个问题。
提前致谢
【问题讨论】:
标签: javascript android canvas surfaceview flicker