繁体   English   中英

使用JavaScript将图像加载到画布中

[英]Loading images into canvas using JavaScript

我正在尝试使用JavaScript将图像制作成动画。 控制台中的一切似乎都按预期进行,但是图像不会加载到画布上。 这是我的代码

<body>
    <canvas id="gameDisplay">

    </canvas>
</body>
<script>
    var canvas = null;
    var context = null;
    var frameRate = 1000 / 30;
    var frame = 0;
    var assets = [
        'images/char.png',
        'images/char1.png'
    ];
    var frames = [];

    var onImageLoad = function() {
        console.log('IMAGE!!');
    };

    var setup = function() {
        canvas = document.getElementById('gameDisplay');
        context = canvas.getContext('2d');
        canvas.width = window.innerWidth;
        canvas.height = window.innerHeight;

        for (var i = 0; i < assets.length; i++) {
            frames.push(new Image());
            frames[i].src = assets[i];
            frames[i].onload = onImageLoad;

        }
    };
    var animate = function() {
        context.clearRect(0, 0, canvas.width, canvas.height);
        context.drawImage(frames[frame], 192, 192);
        frame = (frame + 1) % frames.length;
    }
    setup();
</script>

该项目位于此处

当您有两个版本的代码时,很难回答。 问题中的代码以及您在下面的评论中链接的站点上的其他代码。 您正在尝试实施Udacity课程,但是我发现有两个地方没有按照说明进行操作。 1- .onload必须在.src之前设置
2-setInterval在设置中没有动画调用,我进行了这些更改并获得了基本的动画效果,尽管我无法下载您的图像,因为它一直使我的浏览器崩溃。 请参阅课程视频中的视频#13。

我认为您需要阅读canvas和animation文档,尝试使用这些MDN canvas api。您没有正确获得canvas,一旦完成,就可以调用drawImage。 另外,对于动画,请查看requestAnimationFrame(),尝试此操作以使您入门。 requestAnimationFrame

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM