如何在数组中的精灵位置之间递增?

所以我有一个带有要显示的精灵的字符串数组:

var lts = [
    "letterA","letterB","letterC","letterD","letterE","letterF"
];

在我的assets.js中加载它们:

function loadAssets(callback){

    function loadSprite(fileName){
        assetsStillLoading++;

        let spriteImage = new Image();
        spriteImage.src = "assets/sprites/" + fileName;

        spriteImage.onload = function()
        {
            assetsStillLoading--;
        }

        return spriteImage;
    }
    sprites.background = loadSprite('spr_background_pink.png');

    sprites.letterA = loadSprite('/Letters/letter_A.png');
    sprites.letterB = loadSprite('/Letters/letter_B.png');
    sprites.letterC = loadSprite('/Letters/letter_C.png');
    sprites.letterD = loadSprite('/Letters/letter_D.png');
    sprites.letterE = loadSprite('/Letters/letter_E.png');
    sprites.letterF = loadSprite('/Letters/letter_F.png');
}

现在,我希望能够遍历此字母选项以选择正确的字母,如下所示:

letterNo = letterNo + 1;

var string = "sprites." + lts[letterNo];
console.log("sprite loading:" + string);
this.sprite = string;

但是当我尝试时,我会得到:

sprites.letterB在调试器中,这是我要加载的精灵,但它不喜欢它:

  

TypeError:CanvasRenderingContext2D.drawImage的参数1无法转换为以下任何一种:HTMLImageElement,SVGImageElement,HTMLCanvasElement,HTMLVideoElement,ImageBitmap。

请问如何使它正常工作?

discovery2099 回答:如何在数组中的精灵位置之间递增?

"sprites.letterB"只是一个与sprites对象无关的字符串。如果要访问Sprites对象中的键,请使用括号表示法:sprites[lts[letterNo]]

本文链接:https://www.f2er.com/3164571.html

大家都在问