嗨 我使用 htlm5 和 JavaScript 编写了一个 Canvas 动画。在我的 Windows 浏览器上运行时,运动几乎是正常的。但是当我构建它并在黑莓手机上运行时,运动减少的速度可能会快十倍。我该怎样做才能表现出来? 更重要的是,我使用表单输入让用户修改图形的大小。但是一旦在文本框中修改了值,图形就会调整大小。如何仅在单击按钮时调整它的大小?
最佳答案
问题可能与 JS 性能或 Canvas 绘图或两者有关。执行以下操作:
1) 在 BB 浏览器中运行一个非绘画相关的 JS 函数一千次或其他任何东西,看看它的表现如何。一些 JS activites 需要很长时间。如果没问题,那就是画的问题。
2) BB Canvas 标签的问题在于清除它和渲染它(即当您停止在 BB 设备上绘画时将其刷新到屏幕上)都很慢。在 Canvas 上调用绘画函数的实际行为并不慢。另外 - 如果您正在移动 Canvas ,BB 会吐得很厉害,它可能会为此重新分配整个缓冲区,所以速度会很慢。
选项:
- 放慢你的动画速度 - 很多。如果您每秒多次重新绘制整个小部件 - 这将不起作用。
- 尽可能缩小 Canvas 。一个小 Canvas 不会有问题。屏幕大小的 Canvas 需要一秒钟的时间来清除,可能需要 1/5 秒的时间来绘制。
- 如有必要,请勿清除 Canvas 的任何部分。
所有这一切可能意味着设计一种全新的绘画形式……不幸的是,BB 上的 html 5 不适合动画。我强烈建议使用常规图像,然后根据需要移动/替换图像,使用常规的旧 html div 定位来创建动画。
关于javascript - 黑莓网络上的 Canvas Action 太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5746802/