我一直在阅读(并尝试)我能在这个主题上找到的一切,没有运气。我的目标是将arr_images中的所有图像源加载到包含图像对象的数组中,然后将特定图像绘制到画布上。
非常感谢任何帮助!提前谢谢。
的index.html
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" type="text/css" href="css/main.css">
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/enginev2.js"></script>
</head>
<body>
<canvas id="main" width="1000" height="500"></canvas>
</body>
</html>
enginev2.js
var arr_images = ["images/player.jpg"];
var obj_images = [];
$.each(arr_images, function(key, image) {
var img = new Image();
img.src = image;
obj_images.push(img);
});
var c = document.getElementById("main");
var ctx = c.getContext("2d");
$(document).ready(function() {
ctx.drawImage(obj_images[0], 0, 0, 100, 100);
});
答案 0 :(得分:2)
我现在的猜测是,当您尝试绘制图像时,图像未正确加载(文档可能在图像完全加载之前就已准备就绪)。
尝试使用img对象上的函数回调调用ctx.drawImage函数:
img.onload = drawImage; // calls ctx.drawImage
答案 1 :(得分:0)
var arr_images = ["images/player.jpg"];
var obj_images = [];
$.each(arr_images, function(key, image) {
var img = new Image();
img.src = image;
obj_images.push(img);
img.onload = function() {
ctx.drawImage(obj_images[0], 0, 0, 100, 100);
}
});
var c = document.getElementById("main");
var ctx = c.getContext("2d");