Skip to content

预加载

在观看作品过程中,有些场景内有大量图片,如果需要这些图片显示与否会影响作品流程,建议使用预加载功能,等待所有图片加载完成后再进行后续逻辑处理。 预加载的方式有两种。 使用预加载

  • 优点:等待所有资源加载完成后再进行后续逻辑处理,避免资源加载不完整导致的显示/逻辑问题。
  • 缺点:等待所有资源加载完成可能会增加场景打开时间

预加载仅对图片资源生效

预加载资源

使用scene的预加载

使用scene的预加载功能,在场景中添加需要预加载的资源,资源全部加载完成之后,才会调用场景的init()方法,并且加载过程中会出现系统进度条。

typescript
@LM.Class("TestScene")
class TestScene extends LM.Scene {
  // 返回预加载的资源数组
  preLoadRes(){
    return [
      'Graphics/test/图片1.png',
      'Graphics/test/图片2.png',
      'Graphics/test/图片3.png',
    ]
  }
  init() {
    //场景初始化
  }
}

使用预加载函数

使用LM.preloadRes函数进行预加载,可以自己制作加载进度条。也可以提前加载之后使用的资源。

typescript
//预加载资源
  LM.preloadRes([
    'Graphics/test/图片1.png',
    'Graphics/test/图片2.png',
    'Graphics/test/图片3.png',
  ], () => {
    //加载完成以后执行,如加载完成后才生成UI
    this.initUI();
  });

预加载字体

typescript
//预加载字体
  LM.preloadFont([
    'Graphics/font/阿里巴巴普惠.ttf',
    'Graphics/font/AlimamaDaoLiTi.ttf'
  ], () => {
    //加载完成以后执行,如加载完成后才生成UI
    this.initUI();
  });

示例

使用scene的预加载,有进度条

等待所有资源加载完成后显示场景

有预加载

无预加载

直接显示场景,加载完图片的自己显示。 无预加载