Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在对象中携带画布ctx?_Javascript_Html_Object_Canvas - Fatal编程技术网

Javascript 在对象中携带画布ctx?

Javascript 在对象中携带画布ctx?,javascript,html,object,canvas,Javascript,Html,Object,Canvas,我的画布有一个对象存储为对象,我将画布存储为对象,如下所示: window.canvas = new Object(); temp = document.getElementById('canvas_id'); canvas[objname] = new Object(); canvas[objname].ctx = temp.getContext("2d"); 我遇到的问题是我无法使用ctx来绘制图像 我在绘图功能中执行此操作: 正如您所知,图像设置如下: img = new

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

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)

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

未捕获类型错误:类型错误


如果是因为我在对象中放置了ctx,因此不能这样调用ctx,您有什么想法吗???

尝试传递图像本身,而不是
图像。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();
  }
}

from

objname=='canvas1'
当您运行第一位代码时,它会运行吗?是的,它在该部分完全匹配:)