javascript - Chrome 中的图像预加载 Canvas

标签 javascript html google-chrome canvas preload

据我所知,我已经成功预加载了所有图片。在 FireFox 中,一切都呈现得很好,但它拒绝在 Chrome 中显示。我已经遇到过 webkit 浏览器的其他随机问题,我想这只是其中之一。这是适用的代码(我为长度道歉,只是冗长。我向你保证,其中大部分都非常简单)。

initResources() 是从 $(document).ready() 函数中调用的,其中 Canvas 也已正确初始化。

具体问题似乎是游戏板。 X 和 O(它是井字形...)看起来很好,但游戏板拒绝单独出现在 Chrome 的 Canvas 上。适用于所有其他浏览器。 Chrome 的开发人员工具坚持认为它们是通过网络选项卡加载的,控制台显示了它应该显示的所有内容。谢谢。

[编辑:刚才在 Firefox 中也失败了。可能是缓存问题,此时我更加困惑]

var canvas, context, playerPiece, aiPiece;
var x = new Image();
var o = new Image();
var gameBoard = new Image();
var numResources = 3;   // Total number of resources to wait for loading
var curResources = 0;

function initResources() {
    // Get all our resources ready to go
    x.height = 130;
    x.width = 130;
    x.onload = isLoaded();
    x.src = "images/gamepieceX.png";

    o.height = 130;
    o.width = 130;
    o.onload = isLoaded();// = curResources++;
    o.src = "images/gamepieceO.png";

    gameBoard.height = 500;
    gameBoard.width = 500;
    gameBoard.onload = isLoaded(); //= curResources++;
    gameBoard.src = "images/gameBoard.png";
}

function isLoaded() {
    curResources++;
    console.log("Loaded resource! Total: " + curResources);
    if(curResources == numResources) {
        console.log("All loaded up! Moving on!");
        gameSetup();
    }
}

function gameSetup() {
    // Draw our board and assign a piece
    console.log("Setting up game!");
    playerPiece = x;
    aiPiece = o;

    // Draw gameboard
    context.drawImage(gameBoard, 0, 0);
    console.log(gameBoard);

    canvas.addEventListener ("mousedown", mouseClicked, false);
}

最佳答案

我正在调用内联函数,而不是为每个图像上的 .onload 回调。这是在加载图像之前触发游戏初始化。感谢那些发表评论的人,但我在发帖后不久才看到这个:)

关于javascript - Chrome 中的图像预加载 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15353889/

相关文章:

javascript - 如何在 compoentWillMount ReactJS 中使用 setState()

javascript - Chrome 开发者工具中的数据不一致

windows - 存储在 Windows Azure blob 上的视频不适用于 VideoJS(使用 Chrome)

javascript - 从视频中提取海报图像

javascript - d3js 弧高补间

javascript - URLSearchParams 总是返回空

javascript - 检查 HTML 输入问题的值

c# - MVC 5 中的数据绑定(bind)和使用 Razor 引擎的 Select2 Multiple Values

javascript - jquery函数作用域

javascript - 禁用的表单元素和 oncontextmenu 问题