【发布时间】:2013-03-20 04:24:16
【问题描述】:
我们正在尝试优化游戏,它在 ipad 2 上运行良好,但简单的精灵动画在视网膜 iPad 上运行非常缓慢。我们使用的是 Safari 浏览器。
我们正在使用 CSS 来扩展应用程序。起初,我们尝试使用 libcanvas 框架,但后来切换到纯 HTML5 画布。我们尝试应用 -webkit-transform: translate3d(0,0,0); hack,但一点运气都没有。我们正在使用 webkitRequestAnimationFrame 方法。
我们做drawImage系列:
ctx.drawImage(anim,
frame * widthFrame,
0,
widthFrame,
widthFrame,
devicePixelRatio * shape.x +0.5|0,
devicePixelRatio * shape.y +0.5|0,
devicePixelRatio * shape.width,
devicePixelRatio * shape.height);
紧随其后
window.webkitRequestAnimationFrame(draw,root)
测试用例: http://jsfiddle.net/LJRXb/7/高分辨率 http://jsfiddle.net/AsfcL/1/低分辨率
有什么想法可以提高性能吗?应用程序有什么问题吗?有没有更好的方法来执行精灵动画? 感谢您的关注和专家建议。
【问题讨论】:
-
对于精灵动画,我个人将图像应用到 div 作为背景图像,并在一段时间后更改其背景位置(到下一帧)。我觉得这是实现这一目标的最轻松方式。
-
您可能想查看 HTML5 Rock 的 Canvas Performance Tutorial。还要检查this question 和this one。这两个问题都是关于 HTML5 画布的性能。
标签: javascript canvas html5-canvas retina-display