Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript blackberry webworks上的画布运动太慢_Javascript_Css_Html_Blackberry - Fatal编程技术网

Javascript blackberry webworks上的画布运动太慢

Javascript blackberry webworks上的画布运动太慢,javascript,css,html,blackberry,Javascript,Css,Html,Blackberry,嗨 我使用htlm5和JavaScript编写了一个画布动画。在windows浏览器上运行时,运动几乎正常。但是,当我构建它并在黑莓手机上运行时,运动减少的速度可能会快十倍。我能为那场演出做些什么? 而且,我使用表单输入让用户修改图形的大小。但一旦文本框中的值被修改,图形的大小就会调整。只有在单击按钮时我才能调整它的大小?您的代码优化了吗?我在使用JQuery查找位置时遇到了类似的问题,大约5000次,耗时30秒。在ipad上,我将代码从 pos2 = jQuery('#n_'+Counter3

嗨 我使用htlm5和JavaScript编写了一个画布动画。在windows浏览器上运行时,运动几乎正常。但是,当我构建它并在黑莓手机上运行时,运动减少的速度可能会快十倍。我能为那场演出做些什么?
而且,我使用表单输入让用户修改图形的大小。但一旦文本框中的值被修改,图形的大小就会调整。只有在单击按钮时我才能调整它的大小?

您的代码优化了吗?我在使用JQuery查找位置时遇到了类似的问题,大约5000次,耗时30秒。在ipad上,我将代码从

pos2 = jQuery('#n_'+Counter3).position().top; to pos2 = document.getElementById('n_'+Counter3).offsetTop; pos2=jQuery('#n'+Counter3).position().top; 到 pos2=document.getElementById('n_'+Counter3).offsetTop; 现在只需不到10秒1秒

jQuery可能会检查不同的浏览器,因为有些使用offset,有些说top等。因此,它每次都能为您提供正确的值,而不必担心浏览器(但可能javascript必须执行一系列if语句x5000)


在我的例子中,我的目标是IPad,你将使用blackberry,因此优化可以加快速度,而不必担心交叉浏览器的兼容性。

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

1) 在BB浏览器中运行一个与绘画无关的JS函数一千次或其他任何操作,看看它是如何执行的。一些JS活动需要很长时间。如果可以的话,那么问题就出在这幅画上

2) BB Canvas标记的问题是清除它和渲染它(即,当您在BB设备上停止绘制时,会将其刷新到屏幕)都很慢。在画布上调用绘画函数的实际操作并不缓慢。另外-如果你移动画布,BB吐得很厉害,可能会重新分配整个缓冲区,所以速度会很慢

选项:

  • 降低你的动画速度-很多。如果您每秒多次重新绘制整个小部件-这将不起作用
  • 将画布尽可能缩小。一块小小的画布不会有任何问题。一块屏幕大小的画布需要一秒钟才能清除,也许需要1/5秒才能绘制
  • 如果必须,不要清除画布的任何部分

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

我使用JavaScript在画布上绘制和制作动画。在IE9等浏览器上运行时,运动效果良好。但当试图在黑莓模拟器上运行它时,它几乎是静态的。我只是在使用JavaScript。我使用JavaScript获得画布,然后在画布上绘制并设置动画。