黑莓网络上的画布运动速度太慢

时间:2011-04-21 16:09:43

标签: javascript css html5 blackberry

您好 我用htlm5和JavaScript写了一个画布动画。在Windows浏览器上运行时,动作几乎正常。但是当我构建它并在黑莓移动设备上运行时,运动减少速度可能会快十倍。我该如何表现? 我使用表单输入更多,让用户修改图形的大小。但是只要在文本框中修改了值,就会调整图形的大小。如果仅在单击按钮时如何调整大小?

2 个答案:

答案 0 :(得分:1)

问题可能与JS性能或画布绘图有关。执行以下操作:

1)在BB浏览器中运行一次非绘画相关的JS函数或其他任何内容,看看它是如何执行的。一些JS活动需要很长时间。如果没关系,那就是绘画就是问题。

2)BB Canvas标签的问题是清除它并渲染它(即当你停止在BB设备上绘画时将它刷到屏幕上)都很慢。在画布上调用绘画函数的实际行为并不慢。另外 - 如果你正在移动画布,BB呕吐真的很难,它可能会重新分配整个缓冲区,因此它会很慢。

选项:

  • 降低动画效率 - 很多。如果您每秒多次重新绘制整个窗口小部件 - 这将无效。
  • 将画布缩小到尽可能小。一块小帆布没有任何问题。一个屏幕大小的画布需要一秒钟才能清除,也许需要1/5秒来画画。
  • 如果必须,请不要清除画布的任何部分。

所有这些可能意味着设计一种全新的绘画形式......不幸的是,BB上的html 5不适合动画。我强烈建议使用常规图像,然后使用常规的旧html div定位移动/替换图像以创建动画。

答案 1 :(得分:0)

您的代码是否已优化?我有一个类似的问题,使用JQuery进行位置查找,大约5000次,花了30秒。在ipad上,我改变了代码

pos2 = jQuery('#n_'+Counter3).position().top; 
to
pos2 = document.getElementById('n_'+Counter3).offsetTop;

现在需要的时间少于10秒。

jQuery可能会检查不同的浏览器,因为有些人会使用偏移,有些人会说top等等。因此每次都可以获得正确的值,而不必担心浏览器(但可能javascript必须执行一堆if语句x 5000)。

在我的情况下,我针对IPad你会选择黑莓,因此优化可以加快速度,而不必担心交叉浏览器的兼容性。