canvas 图片加载
pen.drawImage(ele, showX, showY, imgWidth, imgHeight);
ele 将 img 元素 加载到画布上
- 步骤
1. 创建一个 <img> 对象
var imgNode = new Image();
imgNode.src = "./img/bird.png";
2. 等待图片加载完成,再进行下一步操作
imgNode.onload = function(){
3. 图片显示到画布上
pen.drawImage(imgNode, 0, 0, 100, 100);
};
跳帧闪烁问题
- 闪烁的原因:
- 清空了画布,然后加载图片,再等图片加载完,最后画下一帧。
- 这个空白延迟,主要是因为等待图片加载完成时间太久
- 解法1:
- 在加载图片之前,不清空上一帧图像
- 加载完成后,再清空画布,最后画下一帧。
-
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>帧闪烁解决</title> <style type="text/css"> * { margin: 0; padding: 0; } body{ text-align: center; } #myCanvas{ border: 1px solid ; } </style> </head> <body> <canvas id="myCanvas" width="800" height="400"