1
我面临着画布的绘制问题。HTML5 CANVAS隐藏一个bug?或代码缺陷?
画布被保存到数据:图像一次。
它被重绘。
此时出现两个问题。
- 阴影将应用于未绘制阴影的对象。
- 如果保存并重绘重绘,阴影将变深。
<canvas id="SAMPLE" width="960" height="480"></canvas>
<script type="text/javascript" src="./jquery.js"></script>
<script>
var canvas = $("#SAMPLE"),
ctx = canvas[0].getContext("2d");
// first object (no shadow)
ctx.strokeStyle = "#0067ef";
ctx.fillStyle = "#0067ef";
ctx.lineCap = "round";
ctx.lineWidth = "15";
ctx.globalAlpha = 1;
ctx.shadowBlur = 0;
ctx.shadowOffsetX = 0;
ctx.shadowOffsetY = 0;
ctx.shadowColor = "#363636";
ctx.beginPath();
ctx.moveTo(10, 10);
ctx.lineTo(200, 200);
ctx.stroke();
ctx.closePath();
// second object (has shadow)
ctx.shadowBlur = 5;
ctx.shadowOffsetX = 5;
ctx.shadowOffsetY = 5;
ctx.shadowColor = "#363636";
ctx.beginPath();
ctx.moveTo(300, 10);
ctx.lineTo(400, 200);
ctx.stroke();
ctx.closePath();
// Canvas is saved to data:image once.
var save = canvas[0].toDataURL();
// clear canvas
ctx.clearRect(0, 0, 960, 480);
// redraw
var img = new Image();
img.src = save;
img.onload = function() {
ctx.drawImage(this,0,0);
};
</script>
这是正常的,当在之前的保存时的画面重绘进行了调查。
重绘时出现两个问题。
- 阴影将应用于未绘制阴影的对象。
- 如果保存并重绘重绘,阴影将变深。
我的代码有缺陷吗?
哦,我明白了!它应该保存之前设置stlyes,是不是。你确实为我提供了方便。谢谢。 –