日期:2014-05-17  浏览次数:20594 次

发现一个会导致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保存不了状态。

记录下这个奇怪的问题。
1 楼 06wj 2012-01-31  
drawImage时就已经报错了,restore语句就不会执行了。。。