画布并不总是加载

时间:2011-11-20 01:21:50

标签: javascript html5 canvas

我正在使用drawImage在画布中加载png和jpeg图像,但它并不总是有效,即使使用相同的图像也是如此。没有例外,没有错误,它只是不起作用。

  {
  debug("lbase starting");

  var canvas = document.getElementById("base");
  debug(canvas);
  ctx = canvas.getContext("2d");
  debug(ctx);
  ctx.clearRect(0, 0, canvas.width, canvas.height);
  var baseimg = new Image();
  debug(baseimg);
  baseimg.src = "baseimage.png";
  debug(baseimg.src);
  ctx.drawImage(baseimg, 0, 0);
  debug("base loading done");
  }

我的调试功能只是在页面底部的div中写一条消息。我也尝试过:

  retcode ctx.drawImage(baseimg, 0, 0);
  debug(retcode)

但它返回undefined。

所有内容都被执行(我得到了所有正确的调试消息),但有时它可以正常工作,有时则不然。它似乎在ff然后铬中失败了。

无论如何都要验证drawImage是否有效? 知道发生了什么事吗?

感谢。

1 个答案:

答案 0 :(得分:1)

在完成加载之前,您无法将图像添加到画布。

这样的事情应该有效:

var baseimg = new Image();

baseimg.src = "baseimage.png";

baseimg.onload = function() {

    ctx.drawImage(baseimg, 0, 0);
};