【问题标题】:Bitmaps breaking up on android when using createjs and canvas使用createjs和canvas时位图在android上分解
【发布时间】:2013-12-12 21:53:25
【问题描述】:

这不是一个代码问题,而是一个性能问题。我正在制作一款既适用于桌面浏览器又适用于移动设备的小游戏。我正在使用 HTML5 和 CreateJs 制作游戏,并将大部分内容绘制在画布上。

我的问题是它在标准桌面浏览器上运行良好,但是一旦我在我的 Android 设备上通过 PhoneGap 运行它,我就会在图形中得到奇怪的故障。如果我以最基本的方式从画布中删除某些内容,如下所示:

stage.removeChild(myBitmap);
stage.update();

有时,不是每次,位图的一部分仍然留在画布上。我会说大约 10% 的内容留在那里。 感觉好像我需要刷新或重绘画布。 android上的canvas是否存在已知问题(我只看到它发生在android上)还是与createjs相关的问题?

如果我用动画移动位图,也会出现同样的问题。

【问题讨论】:

  • 绝对与 Android 相关。 Android 的画布(尤其是非 Chrome 浏览器中的画布)是最有问题的画布实现之一,并且有很多这样的问题,更不用说性能不佳了。
  • 我没有太多抱怨性能方面的问题,但我并没有那么密集地绘制。然而,这是一个相当大的错误。无法移动位图或将其从画布中删除使其毫无意义:)
  • 同意。不幸的是,它是浏览器中的一个错误。

标签: android html cordova html5-canvas createjs


【解决方案1】:

我终于找到了解决办法。这是一个已知的 android 4.1+ 错误,似乎主要发生在三星 (S2+) 设备中。在此处阅读有关此问题的更多信息:https://code.google.com/p/android/issues/detail?id=39247

总之,下面的代码解决了我的问题:

stage.update();
var canvas = document.getElementById("myCanvas");
canvas.style.opacity = 0.99;
setTimeout(function() 
{
    canvas.style.opacity = 1;
}, 1);

所以这不是 PhoneGap 或 CreateJS 的问题!

【讨论】:

    猜你喜欢
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 2013-09-14
    • 2012-06-11
    • 2013-06-25
    相关资源
    最近更新 更多