在画布中绘制数组图像

draw array images in canvas?

本文关键字:数组 图像 绘制 布中      更新时间:2023-09-26

我试图在画布上绘制图像数组,但没有绘制!以下是我的代码!我也试图了解phonegap和javascriptindex . html:

    <!DOCTYPE html>
<html>
<head>
<title>Minecraft Background Check</title>
</head>
<body>
<canvas id="mycanvas" style="position:fixed; top:0; left:0; border:1px solid #c3c3c3; width: 100%; height: 100%;"></canvas>
<script type="text/javascript" src="cordova-2.5.0.js"></script>
<script type="text/javascript">
document.addEventListener("deviceready",ondeviceReady,false);
function onDeviceReady () {}
    //get element by id 
var c = document.getElementById("mycanvas");
var ctx = c.getContext("2d");
    //array image which need to draw in canvas
var image = ["img/image12","img/image13","img/image14","img/image15","img/image10"];
var m_arrImages = {};
for (var src in image) {
    m_arrImages[src] = new Image();
    m_arrImages[src].src = image[src];
}
var imagePositionsX = [20, 80, 140, 200, 260, 320, 380, 440, 500, 560];
var imagePositionsY = [20, 60, 100, 140, 180, 220, 260, 300, 340, 380];
var i, x, y;
for (i = 0; i < m_arrImages.length; i++) {
    x = imagePositionsX[ Math.floor(Math.random()*10) ];
    y = imagePositionsY[ Math.floor(Math.random()*10) ];
    ctx.drawImage(m_arrImages[i], x, y, 50, 50);
}
</script>
</body>
</html>

您已经将函数ondeviceReady设置为在deviceready事件中运行,但该函数尚未定义。你已经定义了一个叫做onDeviceReady的函数。Javascript变量和函数名是区分大小写的,所以在deviceready事件中不会运行任何东西。

改变:

document.addEventListener("deviceready",ondeviceReady,false);

document.addEventListener("deviceready",onDeviceReady,false);

也许我错了,但是…"m_arrImages"-它只是数组与字符串,而不是图像,不是吗?

我想,应该是这样的:

var m_arrImages = {};
for (var src in image) {
    m_arrImages[src] = new Image();
    m_arrImages[src].src = image[src];
}