javascript - 黑色 Canvas 代替图像

标签 javascript canvas

我的 Canvas 有问题。比方说,1/10 的时候我在 chrome 上有黑色方 block 而不是我的图像。我的代码如下,我该如何修改它以避免这种黑色显示?

<canvas id="Canvas" width="954" height="267"></canvas>

<script>

var canvas = document.getElementById('Canvas');
var context = canvas.getContext("2d");

// Map sprite
var mapSprite = new Image();
mapSprite.src = 'image.png';

var main = function () {
    draw();
};

var draw = function () {
    // Clear Canvas
    context.fillStyle = "#000";
    context.fillRect(0, 0, canvas.width, canvas.height);

    // Draw diagramme
    context.drawImage(mapSprite, 0, 0, 954, 267);
}

main();
</script>

编辑1:全功能绘图:

 var draw = function () {
    // Clear Canvas
    context.fillStyle = "#000";
    context.fillRect(0, 0, canvas.width, canvas.height);

    // Draw diagramme
    context.drawImage(mapSprite, 0, 0, nextWidth, nextHeight);

    //draw all precedent cross
    cross = new Image();
    cross.src = "cross.png";

    for (var i = 0; i < array_x.length; i++) {
    context.drawImage(cross, array_x[i], array_y[i], 10, 10);
    }
}

最佳答案

我相信您想等到图像加载。

替换:

main();

与:

mapSprite.addEventListener('load', main);

关于javascript - 黑色 Canvas 代替图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46394039/

相关文章:

javascript - 定义悬停动画区域并移动所有页面内容

javascript - 如何选择 JSON 字符串中的两个测试对象并将它们映射到我的界面?

javascript - 为什么只有一小部分这个 div 可见?

javascript - 如何从 'SetInterval'切换到 'request animation frame'

html - 调整缩略图的 HTML Canvas 大小 : Can I reduce pixellation and improve resized appearance/interpolation?

javascript - 使用无限滚动时 Canvas 最终太大而无法写入

javascript - 清除整个转换后的 HTML5 Canvas,同时保留上下文转换

javascript - 关于我的 jQuery 脚本 + 与 iDevices 兼容性的建议

javascript - backbone.js 中的多个点击事件

javascript - Canvas 和物体