oops-framework框架 之 启动流程(三)

本文详细介绍了Oops前端框架的启动流程,包括InitRes.ts中的资源初始化,如加载Bundle资源配置、自定义资源、多语言资源和公共资源。加载完成后,通过LoadingViewComp.ts组件展示进度条,加载项目数据表和资源。项目启动主要由Root.ts负责,初始化游戏场景、UI配置和框架各模块。
摘要由CSDN通过智能技术生成

这里我们只需要关注InitResComp即可,它会调用InitRes.ts进行项目启动是公共资源的初始化。

InitRes.ts

此处代码的主体是:

entityEnter(e: Initialize): void {
  var queue: AsyncQueue = new AsyncQueue();

  /\*\* 加载远程资源配置 \*/
  this.loadBundle(queue);
  // 加载自定义资源
  this.loadCustom(queue);
  // 加载多语言包加载多语言包
  this.loadLanguage(queue);
  // 加载公共资源
  this.loadCommon(queue);
  // 加载游戏内容加载进度提示界面
  this.onComplete(queue, e);

  queue.play();
}

注:AsyncQueue是框架提供的一个异步队列处理,它支持将不同的任务添加到队列中按照顺序执行,在执行结束后通过next()执行下一个任务。

主要做的事情就如上面所说,我们看下大概的实现:

  • loadBundle() 加载Bundle资源配置
private loadBundle(queue: AsyncQueue) {
  queue.push(async (next: NextFunction, params: any, args: any) => {
    // 设置默认加载的外部资源包名
    oops.res.defaultBundleName = oops.config.game.bundleName;

    // 加载外部资源包
    if (oops.config.game.bundleEnable) {
      console.log("启用远程资源运行游戏");
      let bundleServer = oops.config.game.bundleServer;
      let bundleVersion = oops.config.game.bundleVersion;
      await oops.res.loadBundle(bundleServer, bundleVersion);
    }
    else {
      await oops.res.loadBundle(oops.config.game.bundleName);
    }
    next();
  });
}

// 框架提供的loadBundle主要用于加载资源包,支持远程和本地加载

框架会根据 resources/config 中的Bundle的配置,设置默认的Bundle名字,后期的资源动态加载都会在该Bundle目录中获取资源。

会根据Bundle配置数据检测:是远程加载还是本地加载Bundle资源相关

注: 框架中的动态资源不要放在resources中,除非您修改此处的默认Bundle名,但这样以后可能会不灵活

注:loadBundle 主要用于加载资源包,框架的底层实现调用的是assetManager.loadBundle

  • loadCustom() 加载自定义资源
/\*\* 加载自定义内容(可选) \*/
private loadCustom(queue: AsyncQueue) {
  queue.push(async (next: NextFunction, params: any, args: any) => {
    // 加载多语言对应字体
    oops.res.load("language/font/" 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值