发现一个会导致HTML5 canvas的save和restore失效的情况
今天写代码出了一点bug,结果是canvas的save和restore失效。
ctx.save();
ctx.translate(pos_.x(), pos_.y());
ctx.rotate(angle_);
ctx.drawImage(image_, -width_ / 2, -height_ / 2, width_, height_);
ctx.restore();
检查了半天也没看出save和restore哪里有问题。最后发现问题根本不在这里。
原因是image_对象出错,不能被正确读取。修改了bug之后,然后我又故意设置drawImage的第一个参数为null,果然问题又重新出现了。
三大浏览器反应都是这样的。有兴趣的可以去试试。
很奇怪这个为什么会导致canvas保存不了状态。
记录下这个奇怪的问题。