2011-10-27 47 views
0

我正在使用clearRect擦除並重繪畫布上的線條,但有時線條仍會保留。我不知道我要去哪裏錯。我在這裏上傳了一個演示。這是問題的屏幕截圖:畫布clearRect不會擦除我的所有線條

http://zackseuberling.com/screenshots/screen_shot_2011-10-27_at_11.19.29_am_bd26.png

我傳入線繪製作爲多層陣列這樣

all_curves = [ 
      ['down_right', 
        [255, 250, 100, 40] 
      ], 
      ['right_down', 
        [355, 290, 330, 245] 
      ] 
    ] 

其中「down_right」等是曲線路徑和整數數組是曲線的x,y,長度和高度。

這是繪製線條

for(each_line in all_curves){ 
      mask_draw(this, all_curves[each_line][0], all_curves[each_line][1][0], all_curves[each_line][1][1], all_curves[each_line][1][2], all_curves[each_line][1][3]); 
    } 
+3

請提供源代碼,以便我可以知道你做錯了什麼。 –

+0

我已經添加了一些代碼片段,但是所有的繪圖都包裝在一個繪圖對象中。整個事情可以在這裏找到:http://rumors-studio.com/test/Spheres-of-Influence_Stack_2/js/lines.js – zack

+0

好吧,我已經看到你的源代碼,並從我瞭解你正在使用4獨立畫布元素 - 一個用於移動設備(粉紅色),一個用於界面設備(綠色),一個用於個人設備(藍色),另一個用於點擊某個設備並顯示彈出窗口(灰色)時的遮罩。在點擊一個設備時,前三個畫布元素會重新繪製爲黑色,並且遮罩顯示從頂部到設備的路徑。現在,從屏幕截圖中我可以看到正在繪製額外的蒙版路徑。我認爲這是因爲使用jQuery事件和多個畫布元素。這沿着這些線。 –

回答

0

我已經重寫你的代碼的代碼,我相信它工作正常。我認爲問題在於使用多個畫布元素並使用CSS覆蓋它們。我上傳了MediaFirezip存檔,所以你可以從那裏下載。我只對index.html文件進行了更改,並且我在js文件夾中創建了一個新的stack.js文件。如果您有任何疑問,請隨時詢問我。希望這可以幫助。