带有数组的canvas setLineDash在Firefox中不起作用,但在Chrome中不起作用

时间:2014-05-19 15:39:44

标签: javascript google-chrome firefox html5-canvas

我有以下代码:

[
    {
      lineDash: [0, 0],
      strokeStyle: '#909090',
      lineWidth: lineWidth,
    },
    {
      lineDash: [0, 0],
      strokeStyle: '#e5e5e5',
      lineWidth: lineWidth -10,
    },
    {
      lineDash: [0, 0],
      strokeStyle: '#909090',
      lineWidth: lineWidth -26,
    },
    {
      lineDash: [20, 14],
      strokeStyle: '#ffffff',
      lineWidth: 3,
    },
  ].forEach(function(entry) {

    ctx.beginPath();

    ctx.lineWidth = entry.lineWidth;
    ctx.strokeStyle = entry.strokeStyle;
    ctx.setLineDash(entry.lineDash);
}

设置lineWidth和strokeStyle工作正常,但setLineWidth在Firefox中没有,我在控制台中没有错误。在Chrome中,它可以运行。如果我说而不是' ctx.setLineDash(entry.lineDash);' ' ctx.setLineDash(entry.lineDash [0],entry.lineDash [1]);',Firefox控制台说' TypeError:CanvasRenderingContext2D.setLineDash的参数1无法转换一个序列。'和Chrome控制台意味着' Uncaught TypeError:第一个参数既不是数组,也不具有索引属性'。

你知道如何解决这个问题吗?提前谢谢!

1 个答案:

答案 0 :(得分:0)

知道,我知道错误:[0,0]没有一条线(0线,0?之间的空格)。我必须将第一个值设置为0以上的任何数字,然后让其他数字为0.然后,它是一个实线。

相关问题