我有以下代码:
[
{
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:第一个参数既不是数组,也不具有索引属性'。
你知道如何解决这个问题吗?提前谢谢!
答案 0 :(得分:0)
知道,我知道错误:[0,0]没有一条线(0线,0?之间的空格)。我必须将第一个值设置为0以上的任何数字,然后让其他数字为0.然后,它是一个实线。