【发布时间】:2012-09-30 01:27:09
【问题描述】:
我目前正在使用 phonegap 开发一个 android 应用程序。我有一个 html5 画布,我在上面绘制和动画对象。它在 android 2.3 上运行良好,但在 android 4+ 上它不会重绘画布。我尝试将 kinetic.js 和 easel.js/tween.js 用于我的动画,并且这两个库都出现了不清除画布的问题。我在画布上显示和隐藏 div 时取得了一些成功,但它并不总是有效。我只能假设这是一个 android 4+ 特定的错误或某种类型的功能,以增强 html5 画布性能。
有谁知道是否有一些我可以更改的设置或我可以在 android 4 或 javascript 中调用的方法,这将允许我在动画期间强制重绘我的 html5 画布?
还应注意,动画似乎可以在 4.1 google api 模拟器中使用 easel.js/tween.js(画布清除并重绘),但不适用于运行 4.1.1 的手机。
我对正在发生的事情做了一些进一步的研究。从本质上讲,动画一开始的形状似乎留下了一个工件,而 clearRect 并没有清除它。我有一个大圆圈,我正在缩小到一个小圆圈。动画仍然发生,但大圆圈不受在画布上调用 clearRect 的影响。
【问题讨论】:
-
所以我想出了一个解决办法。我仍然不知道根本原因或为什么它只发生在 Android 4+ 中。如果我在第一次绘制到画布之前先设置一个 setTimeout。它不再留下文物。
标签: android cordova html5-canvas kineticjs easeljs