切换setLineDash()

时间:2015-03-03 04:16:04

标签: javascript html5

我查看了如何使用HTML5画布绘制虚线并发现setLineDash()。它似乎在我的浏览器(Chrome,Firefox和Safari)中工作正常,但我无法找到"标准"禁用它的方法

我有一个函数可以在一个间隔上调用,该间隔绘制一些实线然后是虚线。我最好的猜测是这样做:

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([]);

1 个答案:

答案 0 :(得分:5)

  

每个CanvasDrawingStyles对象都有一个破折号列表,该列表为空或由偶数个非负数组成。最初,dash list必须为空。

Dash列表以空数组[]开头,因此您应将其设置为空数组,以将短划线列表重置为初始状态。

另请参阅setLineDash定义,其中还注明了破折号列表defaults to empty

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