在 Javascript 实例上绘制图像

乔纳森

我不明白为什么 drawImage 方法在 Canvas2D 实例上不起作用。

但是当我把它放在 setTimeout 方法中时它工作,为什么?

function Canvas2D() {
  this._canvas = document.getElementById('screen');
  this._canvasContext = this._canvas.getContext('2d');
}

Canvas2D.prototype.clear = function() {
  this._canvasContext.clearRect(0, 0, this._canvas.width, this._canvas.height);
};

let Canvas = new Canvas2D();

let image = new Image();
image.src = './assets/sprites/spr_background.png';

// Doesn't work here
Canvas._canvasContext.drawImage(image, 33, 71);

setTimeout(() => {
  // When I put it here it works
  // Canvas._canvasContext.drawImage(image, 33, 71);
}, 1000);
d0n.key

必须加载图像才能正确绘制。如果你会做这样的事情:

image.onload = function(){
  Canvas._canvasContext.drawImage(image, 33, 71);
}

它应该工作,我想......

在 1 秒超时后,图像很可能已在该时间内加载。上面的代码等待图片加载完毕,然后进行绘制。(所以如果它在不到一秒的时间内加载,它可以更早地绘制它,如果它需要超过一秒,它就不会失败)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

javascript在画布上绘制图像

来自分类Dev

javascript画布不会绘制图像

来自分类Dev

如何在javascript中(没有CSS和HTML)在图像上绘制图像

来自分类Dev

Javascript Canvas如何绘制图像很多图像

来自分类Dev

使用javascript在html5中绘制图像

来自分类Dev

Javascript画布:绘制图片

来自分类Dev

用JavaScript从RGB像素阵列向屏幕绘制图像的最快方法是什么?

来自分类Dev

如何使用 JavaScript 在 html 画布中为特殊过滤器绘制图像

来自分类Dev

在缩放的画布上绘制图像

来自分类Dev

在缩放的画布上绘制图像

来自分类Dev

访问画布上的绘制图像

来自分类Dev

从Android中的可绘制图像创建图像实例

来自分类Dev

从android中的可绘制图像创建图像实例

来自分类Dev

在画布上绘制我的可绘制图像?

来自分类Dev

为什么drawImage不在jframe上绘制图像

来自分类Dev

用点在画布上绘制图像

来自分类Dev

如何在JPanels上绘制图像

来自分类Dev

如何在圆圈上绘制图像

来自分类Dev

如何在画布上分层绘制图像?

来自分类Dev

在UserControl WPF内的PictureBox上绘制图像

来自分类Dev

如何在圆圈上绘制图像

来自分类Dev

ImageIcon.paintIcon不在JPanel上绘制图像

来自分类Dev

在画布上绘制图像并作为纹理返回

来自分类Dev

WPF - 在画布上创建和绘制图像

来自分类Dev

在画布内绘制图像

来自分类Dev

在cameraOverlayView中绘制图像

来自分类Dev

IB_DESIGNABLE绘制图像

来自分类Dev

画布-从原型中绘制图像

来自分类Dev

画布未绘制图像