2015-03-03 23 views
2

我擡頭看看如何用HTML5畫布繪製虛線並發現setLineDash()。它似乎在我的瀏覽器(Chrome,Firefox和Safari)中工作得很好,但我無法找到禁用它的「標準」方法切換setLineDash()

我有一個函數在繪製一些固體線條和後來的虛線。我最好的猜測是要做到這一點:

context.beginPath(); 

// Toggle off the previous loop's dashed lines 
if (context.setLineDash) 
    context.setLineDash([]); 

// Code to draw the solid lines 

context.stroke(); 
context.closePath(); 

if (context.setLineDash) 
    context.setLineDash([8, 8]); 

context.beginPath(); 

// Code to draw the dashed lines 

context.stroke(); 
context.closePath(); 

我的主要問題是下面的部分是否是虛線切換掉適當的方式:

if (context.setLineDash) 
    context.setLineDash([]); 

回答

4

每個CanvasDrawingStyles對象都有一個破折號列表,它可以是空的,也可以是偶數個非負數。最初,dash list必須爲空。

短劃線列表以空數組[]開頭,因此應該將其設置爲空數組以將短劃線列表重置爲其初始狀態。

另請參閱setLineDash的定義,其中還注意到破折號列表defaults to empty

void setLineDash(sequence<unrestricted double> segments); // default empty 
+0

太好了,謝謝 – asimes 2015-03-03 05:30:04

+0

要真正回答你的問題,你的代碼片段是正確的。保持'if(context.setLineDash)'確保代碼在不受支持的瀏覽器上仍能正常工作。 – skeggse 2015-03-03 05:34:15