0

我正在构建一个带有 JQM 和 Phonegap 3.1 的应用程序,其中一个具有大量动画和交互性的画布位于 JQM 标题的正下方。用户可以使画布全屏,在这种情况下我隐藏了标题。

我很早就注意到,如果我使用固定的标题,然后尝试隐藏它,而不是画布向上滑动(就像使用非固定标题一样),屏幕的顶部英寸显示标题曾经显示画布顶部英寸的精确镜像副本。包括所有的动画。它显然不会减慢应用程序的速度。就好像画布被粘贴了两次。

很简单,我想,我不会使用固定标题。我已经一个月没有看到这种行为了。但是昨天,在同事的手机上进行测试,页面加载时我突然得到了两个全尺寸的画布副本,一个在另一个之上;顶部的交互性正好反映了底部的交互性。

虽然我确实有一个备用的隐藏画布元素用于预绘制精灵,但它无法接收交互式代码的第二个副本——即使它接收到了,它也无法同步到什么在第一个副本中进行。所以我不认为我在看第二个画布,我认为我在看一个非常低级的重绘错误。

这是不可重现的。我在加载屏幕上将手机水平转动,然后在某个时间点又回到垂直,它突然出现的时间,但经过数十次尝试后,我无法让它再次发生。

有没有人看到这种行为发生,有没有办法避免它?

4

1 回答 1

0

事实证明,这确实是一个 GPU blitting bug。这里已经详细讨论过:

手机 Android HTML5 硬件加速 - 画布

于 2013-11-14T14:41:00.880 回答