我正在将图像绘制到 Canvas 元素。然后,我就有了依赖于此过程完成的代码。我的代码如下所示:

var myContext = myCanvasElement.getContext('2d'),
    myImg = new Image();

myImg.onload = function() {
    myContext.drawImage(containerImg, 0, 0, 300, 300);
};

myImg.src = "someImage.png";

所以现在,我想在drawImage完成时收到通知。我检查了规格,但找不到事件或传递回调函数的可能性。到目前为止,我只是设置了一个超时,但这显然不是很可持续。你怎么解决这个问题?

最佳答案

就像几乎所有Javascript函数一样,drawImage是同步的,即仅在实际完成了它应该做的事情后才返回。

就是说,与大多数其他DOM调用一样,它应该做的是排队等待下次浏览器进入事件循环时要重新绘制的事物的列表。

您无需专门注册就可以告诉您什么时候发生的事件,因为在调用任何此类事件处理程序时,重绘就已经发生了。

10-04 22:35