在一个对象中携带canvas ctx?

时间:2012-12-05 06:17:24

标签: javascript html5 object canvas

我的画布存在一个对象存储为对象,我将画布存储到对象中,如下所示:

window.canvas = new Object();
temp = document.getElementById('canvas_id');
canvas[objname] = new Object();
canvas[objname].ctx =  temp.getContext("2d");       

我遇到的问题是我无法使用ctx来绘制图像....

我在绘图功能中这样做:

您知道图像设置如下:

img = new Image();
img.src = 'images/0.png';

稍后在剧本中绘制:

canvas['canvas1'].ctx.drawImage(img.src,abposx,abposy);

问题是我得到一个类型错误,上面写着:

Uncaught TypeError: Type error

任何想法,如果是因为我已经在对象中放置了ctx,所以不能像那样调用ctx?

1 个答案:

答案 0 :(得分:1)

尝试传递图像本身而不是image.src尝试以下内容:

canvas['canvas1'].ctx.drawImage(img,abposx,abposy);

我希望有所帮助!

这是一个代码示例:

function draw() {
  var ctx = document.getElementById('canvas').getContext('2d');
  var img = new Image();
  img.src = 'images/backdrop.png';
  img.onload = function(){
    ctx.drawImage(img,0,0);
    ctx.beginPath();
    ctx.moveTo(30,96);
    ctx.lineTo(70,66);
    ctx.lineTo(103,76);
    ctx.lineTo(170,15);
    ctx.stroke();
  }
}

来自https://developer.mozilla.org/samples/canvas-tutorial/3_1_canvas_drawimage.html