为什么不't javascript在画布上绘制图像

Why doesn't javascript draw the images on the canvas?

本文关键字:绘制 图像 javascript 为什么不      更新时间:2023-09-26

我在画布上绘制图像时遇到问题。没有错误,但仍然没有绘制任何图像。请查看代码块,看看你是否能看到我看不到的东西:

function loadPacman(posX, posY) {
    this.posX = posX;
    this.posY = posY;
    pacman = new Image();
    pacman.src="http://www.frogbug.se/pacman/img/naziman.png";
    pacman.addEventListener("load", function(){
            canvas.drawImage(pacman, this.posX, this.posY)
        }, false);
}
function loadGhost(posX, posY) {
    this.posX = posX;
    this.posY = posY;
    ghost = new Image();
    ghost.src="http://www.frogbug.se/pacman/img/ghost.png";
    ghost.addEventListener("load", function(){
            canvas.drawImage(ghost, this.posX, this.posY)
        }, false);
}

这是我在页面加载时加载的函数:

function onLoad() {
    var xy = document.getElementById('canvas');
    canvas = xy.getContext('2d');
    //calculate the x and y for canvas
    x = xy.width;
    y = xy.height;
    //divide the width and length of the canvas to get small cubes
    //which is 40x40
    xtile = Math.floor(x/40);
    ytile = Math.floor(y/40);
    //draw lines around the canvas
    canvas.strokeRect(0, 0, x, y);
    //the array for the map
    var map = getMapArray();
    //draw the map
    drawMap(map);
    //fillCanvas("0010", 0, 40, 40, 40);
    //load the ghost and pacman
    loadPacman(0, 0);
    loadGhost((xtile*40)-40, (ytile*40)-40);
}

提前感谢!您可以在此处查看完整的来源等信息:http://www.picturds.com/pacman_serious/

从加载回调中的this.posXthis.posY中删除this。该上下文中的this是图像元素,与分配给this.posX(即window)时的this不同。

http://jsfiddle.net/5dkx4/