Javascript drawImage函数失败

Javascript drawImage函数失败,javascript,canvas,drawimage,Javascript,Canvas,Drawimage,我已经使用了draw函数,但是现在我要继续使用图像,我碰到了一堵砖墙。代码如下: var x var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); var ghost = new Image(); ghost.src = "ghost.png" window.setTimeout(x, 5000); var drawIm = function (sprite) { ctx

我已经使用了draw函数,但是现在我要继续使用图像,我碰到了一堵砖墙。代码如下:

var x
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var ghost = new Image();
ghost.src = "ghost.png"

window.setTimeout(x, 5000);


var drawIm = function (sprite) {
    ctx.save();
    ctx.translate(100, 100);
    ctx.drawImage(sprite, 0, 0, sprite.width, sprite.height, 0, 0, sprite.width, sprite.height);
    ctx.restore();
};


drawIm(ghost);

我确信这与文件名或任何东西无关,我看不出有任何问题,但鬼魂就是不会出现!有什么问题吗?

你需要在加载幽灵时绘制它。所以,做一些像

var canvas=document.getElementById(“canvas”);
var ctx=canvas.getContext(“2d”);
var ghost=新图像();
//重影加载事件
ghost.onload=函数(){
drawIm(鬼);
}
ghost.src=”https://lessonpix.com/drawings/2587/100x100/Happy+Ghost.png”;
var drawIm=函数(精灵){
ctx.save();
ctx.translate(100100);
ctx.drawImage(sprite,0,0,sprite.width,sprite.height,0,0,sprite.width,sprite.height);
ctx.restore();
};

在画布中绘制时,可能没有加载重影img。尝试在图像的onload事件中绘制图像。不过,他在绘制之前使用了5秒的超时。尽管提及如何正确加载图像是件好事,但它可能无法正常工作。是的,它会。正如您在代码片段
(:
谢谢!它起作用了,但是为什么5秒超时没有出现?bcoz,您没有正确使用
设置超时
。尽管在这种情况下您根本不应该使用它。好的,再次感谢!