Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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 drawimage()在js中不工作_Javascript_Image_Html5 Canvas - Fatal编程技术网

Javascript drawimage()在js中不工作

Javascript drawimage()在js中不工作,javascript,image,html5-canvas,Javascript,Image,Html5 Canvas,我想用javascript画一个图像,我不知道为什么它不画。我在互联网上寻找答案,但找不到。代码如下: var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); canvas.width = 640; canvas.height = 480; var playerimg = new Image(); function setup(){ render(); } function

我想用javascript画一个图像,我不知道为什么它不画。我在互联网上寻找答案,但找不到。代码如下:

var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
canvas.width = 640;
canvas.height = 480;
var playerimg = new Image();

function setup(){
    render();
}

function render()
{
    playerimg.onload = drawcharacter();
}

function drawcharacter(){
    ctx.drawImage(playerimg, 340, 240, 50, 50);
}

playerimg.src = "playersrc.png";
window.onload = render();
render();

你的错误在这一行:

playerimg.onload = drawcharacter();
您的意图似乎是使
drawcharacter
成为
playerimg
的onload处理程序。但这一行实际做的是,立即执行
drawcharacter()
,然后将返回值指定为
playerimg
的onload处理程序。函数不返回任何内容,因此onload处理程序被设置为
undefined

要将函数正确分配为onload处理程序,请省略括号:

playerimg.onload = drawcharacter;

“不工作”是什么意思?在你的问题中尽可能多地包含细节。如果你先初始化playerImg,你就可以在上面附加一个事件,无需等待文档加载。然后,尝试在附加事件后设置其src(此处不是这种情况),该事件可能在重新定义之前触发
playerimg.onload