resources.load无法加载SpriteFrame,并且SpriteFrame.createWithImage返回空

我尝试使用 resources.load来加载图片并设置给Sprite节点,但是失败了,Uncaught TypeError: Cannot set properties of undefined (setting ‘spriteFrame’)
为此我印出了加载结果,以下是目标图片位置,测试代码,控制台输出结果
direct
start() {

    test = this;

 
    resources.load("hero10",SpriteFrame,(err,Sprite)=>{

        if(err){

            console.log("err:"+err);

        }

        console.log("AssetBundleTest Load(SpriteFrame):"+Sprite);;

    })

    resources.load("hero10",ImageAsset,(err,Iasset)=>{

        if(err){

            console.log("err:"+err);

        }

        console.log("AssetBundleTest Load:"+Iasset);

        let sprite = SpriteFrame.createWithImage(Iasset);

        console.log("AssetBundleTest createWithImage:"+sprite);

        this.img.spriteFrame  = sprite;

    })

}

log
可以看到 resources.load 指定SpriteFrame的情况直接就失败了,而指定ImageAsset确实是有加载出东西,但是这个路径不是项目路径,文件名也不是hero10这是为啥?正式运行时会将资源打包做hash?但是接下来作SpriteFrame.createWithImage的回传为空值,这样依旧造成了Cannot set properties of undefined报错
有大大知道是为啥吗?是不是图片设置不对?图片类型已经是sprite-frame了啊

https://forum.cocos.org/t/topic/153739 可能和这个有关?

resources.load('hero/spriteFrame', ...)

关键是 /spriteFrame 后缀

我按照这个改了下,结果err通过了,但是加载出来的仍然是空,这是改完后的代码
resources.load(“hero10/spriteFrame”,SpriteFrame,(err,result)=>{

        if(err){

            console.log("err:"+err);

        }

        console.log("AssetBundleTest Load(SpriteFrame):"+result);

        this.img.spriteFrame  = result;

    })

这是log
log
有什么可能性吗?AssetBundleTest Load(SpriteFrame):打印出来的不是undefined而是空白

怎么看报错是报的this.img是空???

console.log(“AssetBundleTest Load(SpriteFrame):”+result);
这行印出来的信息,冒号后面什么都没有,理论上java script的预设值是undefine,不应该是什么都没有啊

你不应该用连接符去打印,那好歹也是个对象。

console.log("AssetBundleTest Load(SpriteFrame):", result)

确实,这样打印就能看出来是SpriteFrame了