微信小游戏5.2.2 在子项目中使用EUI制作排行榜报错 wx.getFileSystemManager not function...

本文探讨了在特定版本的Egret框架中使用EUI界面时遇到的资源加载问题。详细介绍了如何调整配置文件以避免加载错误,并通过示例代码展示了如何在子项目中正确加载资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

本来想子项目(开放数据域)想使用EUI来制作排行榜。

原5.1.11的时候是ok的。在5.2.2中,使用assetsmananger而不是res,则会报错wx.getFileSystemManager not function。

 

 查找到这个报错是在egret.wxgame.js里

 

修改配置文件,将子项目的assetsmananger改成res,则这个报错消失。

但是即使使用res,也不能去加载default.res.json文件。

res仅仅能够让你能使用

let img:eui.Image = new eui.Image();

img.source = "resource/assets/bg.png";

如果使用assetsmananger,你连img.source = ""都会报错...

 

但是在主项目中使用assetsmanager则无问题。

 

那么我们可以在子项目中使用eui,仅仅加载皮肤主题,不加载default.res.json。

所以eui上的所有img的source,都要从主项目中以下面方式获取:

img.source = "resource/assets/xxx.png" 

resource/assets/xxx.png是主项目的资源路径

 

加载皮肤主题后,则可以使用eui来制作排行榜RankPanel

class Main extends eui.UILayer {

    protected createChildren(): void {
        super.createChildren();

    
        //inject the custom material parser
        //注入自定义的素材解析器
        let assetAdapter = new AssetAdapter();
        egret.registerImplementation("eui.IAssetAdapter", assetAdapter);
        egret.registerImplementation("eui.IThemeAdapter", new ThemeAdapter());

        let theme = new eui.Theme("resource/default.thm.json", this.stage);
        theme.addEventListener(eui.UIEvent.COMPLETE, this.onThemeLoadComplete, this);

    }

    private onThemeLoadComplete(){
        console.log("子项目加载皮肤完成");

        this.addChild(new RankPanel());
    }
}

 

RankPanel的所有img图片路径都可以从主项目resource中获取  

class RankPanel extends eui.Component{
	public constructor() {
		super();
		this.skinName = "RankPanelSkin";
	}

	protected childrenCreated(){
		let img:eui.Image = new eui.Image();
		img.source = "resource/assets/login/ue2.png";
		this.addChild(img);
	}
}

  

补充:排行榜从开放域中获取图片

当在开放域eui中制作排行榜时,可以将排行榜所用素材正常的放在resource/assets下。

下图是开放域项目,排行榜测试用图片

 

 发布后,这张图片是找不到的

 

因为发布后这张图片的路径是openDataContent/resource/assets/rankingtitle.png,而不是resource/assets/rankingtitle.png。

 

所以在开放域项目中需要重新设置这张图片的路径。(rankImg就是"排行榜"图片)

this.rankImg.source = "openDataContext/resource/assets/rankingtitle.png";

 

这样操作,可以方便的在开放域摆放排行榜UI,也能防止图片加载路径错误的问题。

 

转载于:https://www.cnblogs.com/gamedaybyday/p/9196924.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值