【发布时间】:2011-06-09 01:36:17
【问题描述】:
我在 FF(3.6 和 4beta4)下遇到了一个奇怪的 strokeText 效果,我无法在 Chrome 或 Safari 下重现。 如果我绘制一个填充的路径形状(但不是描边),然后是描边的文本,则在调用 strokeText() 时会描边路径。
这是我的代码:
var el = document.getElementById('canvas'),
ctx = el.getContext('2d');
ctx.save();
// draw Rect
ctx.beginPath();
ctx.moveTo(100, 100);
ctx.lineTo(200, 100);
ctx.lineTo(200, 200);
ctx.lineTo(100, 200);
ctx.lineTo(100, 100);
ctx.closePath();
ctx.fillStyle = 'red';
ctx.fill();
// draw Text
ctx.save();
ctx.textAlign = 'start';
ctx.fillStyle = "rgba(0,0,0,0.0)";
ctx.strokeStyle = "blue";
ctx.lineWidth = 2;
ctx.font = "bold 35pt sans-serif";
ctx.strokeText("Hello World !", 100, 280);
ctx.restore();
如果你运行它,矩形是蓝色的,而它不应该。
您是否发现此代码有问题,或者是 FF 中的错误?
谢谢!
【问题讨论】:
-
你在 strokeText() 之前/之后尝试过 ctx.beginPath()/ctx.closePath() 吗?
-
你是对的,它解决了这个问题。谢谢 ! (顺便说一句,我升级到 FF4beta8 并已修复。请参阅下面的我自己的答案。