2011-04-21 72 views
0

嗨 太慢我寫了使用htlm5和JavaScript畫布動畫。在我的Windows瀏覽器上運行時,運動幾乎是正常的。但是,當我構建它並在黑莓手機上運行時,運動速度的下降可能會快十倍。我該如何做這個表演? 越多,我使用表單輸入讓用戶修改圖形的大小。但只要在文本框中修改了值,圖表就會調整大小。我怎麼才能調整它的大小,只有當按鈕被點擊?帆布運動黑莓WebWorks的

回答

0

是您的代碼優化?我有一個類似的問題,使用JQuery進行定位,大約需要30秒才能完成5000次。在ipad上,我更改了代碼

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

並且現在需要更少的10秒。

jQuery可能會檢查不同的瀏覽器,因爲一些使用偏移量的人說頂部等等,所以它每次都得到正確的值,而不必擔心瀏覽器(但可能JavaScript必須執行一堆if語句x 5000) 。

在我來說,我有針對性的iPad的你會爲黑莓這樣的優化可以加快速度,而不必擔心跨瀏覽器的兼容性。

+0

我使用JavaScript在畫布上繪製和動畫。在IE9等瀏覽器上運行時,動作很好。但是當試圖在黑莓模擬器上運行時,它幾乎是靜態的。我只是使用JavaScript。我使用JavaScript獲取畫布,然後繪製並使其動畫。 – miaf 2011-04-22 23:05:12

1

該問題可能涉及JS性能OR畫布繪製或兩者。執行以下操作:

1)運行非繪畫相關的JS在BB瀏覽器功能的一千次或什麼,看看它是如何執行。一些JS活動需要很長時間。如果沒關係,那就是問題所在。

2)與BB Canvas標籤的問題是清除它,並使其(即當你停止在該BB器它刷新屏幕畫上)都慢。在畫布上調用繪畫函數的實際行爲並不慢。另外 - 如果你正在移動畫布,BB pukes真的很難,它可能會重新分配整個緩衝區,所以它會很慢。

選項:

  • 減慢動畫速度 - 很多。如果你每秒重繪整個小部件多次 - 這是行不通的。
  • 將畫布縮小到儘可能小。一個小帆布將沒有問題。屏幕大小的畫布需要一秒鐘才能清除,可能需要1/5秒才能完成畫圖。
  • 如果必須,請不要清除畫布的任何部分。

所有這些可能意味着設計一個完整的繪畫形式......不幸的是,BB上的html 5並不適合動畫。我強烈建議使用常規圖像,然後根據需要使用常規的舊html div定位來移動/替換圖像以創建動畫。