首页 > 解决方案 > 将异步代码传递到 Flutter 中的下一个屏幕?

问题描述

我有一个用 Flutter 制作的游戏,我想预加载 66 个声音字节,这大约需要 16 秒。

 _initCardNameSounds()async{
    print(DateTime.now()); //2021-05-16 12:23:38.050985
    for(var x = 0; x < 66; x++){
      cardNameSounds.add(
        await pool.load(
          await rootBundle.load(
            'lib/assets/cardNameAudio/'+(deck[x].split('.png')[0])+'.mp3'
          )
        )
      );
    }
    print(DateTime.now()); //2021-05-16 12:23:50.987699
  }

我可以在加载声音的同时在游戏之前添加一个加载屏幕〜但我宁愿在应用程序启动时开始加载声音,当用户从菜单进入游戏时,声音应该已经加载。

我的问题是〜如何在加载时在多个屏幕之间传递这个异步/加载功能?

(主菜单 -> 游戏模式选择 -> 玩家人数选择 -> 游戏)

^在启动应用程序时在主菜单期间开始加载 -> 应该在游戏启动时加载。

标签: flutterdart

解决方案


推荐阅读