【问题标题】:Phonegap HTML5 Canvas Layer Not Cleared (Only On Device)Phonegap HTML5 画布层未清除(仅在设备上)
【发布时间】:2014-06-23 13:04:27
【问题描述】:

为 Android (Galaxy S4 4.3) 编写 Phonegap (3.4) 应用程序。 应用程序有: 背景(zIndex = 0) 层(zIndex = 1)

背景永远不会改变。 该层可通过触摸或鼠标按下来滚动,因为它显示来自另一个阴影画布(其高度大于屏幕高度)的图像。

“刷新”图层画布 (contextInChat) 的代码,导致用户正在滚动:

contextInChat.clearRect(0, 0, canvasInChat.width, canvasInChat.height);
contextInChat.drawImage(canvasNewChat, 0, chats.getCurrentChat().getYPosition(), windowWidth, chat_screen_height, 0, 0, canvasInChat.width, canvasInChat.height);

这在我使用 Firefox 的 PC 浏览器中运行良好(一个可移动的矩形):

但是在设备上进行测试时,它确实会滚动,但问题是它在开始移动之前并不清楚图层的状态(向上移动,底部矩形在开始移动之前就在那里,但上部rect 正在被移动“ok”,底部的 rect 应该已经用上面的 clearRect() 清除了):

【问题讨论】:

  • 为了清楚起见,我不移动图层。但是将内容移动到层内。

标签: javascript html cordova canvas layer


【解决方案1】:

我认为这是一个错误,而且令人沮丧。其中一些页面可能有助于解决您的问题(尽管我无法在 Nexus 7 和 4.3 上消除它):

您可能需要考虑 Project Crosswalk (https://crosswalk-project.org),它本质上使用带有加速画布的 Chrome 网络视图来解决系统网络浏览器(包括不加速画布的 4.4)中对画布的烂支持。 .. 叹息)。

【讨论】:

  • canvas.width = canvas.width;修复了这个但它比 clearRect() 慢,有没有办法避免 canvas.width = canvas.width;毕竟?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-29
  • 2015-06-24
  • 1970-01-01
  • 2016-08-22
相关资源
最近更新 更多