javascript - 如何从 Phaser3 中的其他场景获取数据?
问题描述
我已经看到了与我类似的其他问题的答案,通过 scene.start() 传递数据并使用 init 函数获取它。但我问的是不同的东西。
假设我在场景 A 上,它开始场景 B 并暂停。然后我对场景 B 进行一些计算,我想在恢复时将结果传递给场景 A。
有没有办法做到这一点?
解决方案
https://stackblitz.com/edit/so-phaser-resume-data
类似于使用 start 传递数据。对于像恢复这样的调用,还有一个可选的数据参数。它被传递给场景恢复事件的侦听器。
// scene-a #create
this.events.on('resume', (scene, data) => {
this.textObj.setText(data.someMath.toString());
});
// scene-b
this.game.scene.resume('scene-a', {someMath});
或者,您可以从另一个场景中限定某些内容,并从那里注册一个恢复事件侦听器。
// scene-b
const sceneA = this.game.scene.getScene('scene-a');
sceneA.events.once('resume', () => {
sceneA.textObj.setText('something from this scene, scene-b');
});
this.game.scene.resume('scene-a');
推荐阅读
- redux - Redux 工具包 actionCreator 警告:参数数量无效,应为 0
- javascript - 使用 Javascript 创建动态 ul
- mysql - 如何提高同表连接的性能?不知何故没有使用 1 个索引
- flutter - 如何将snackbar从一页调用到多页-flutter
- r - 重新聚合数据——从粗略到精细的时间分辨率
- heroku - 超出 Heroku slug 大小
- amazon-web-services - 无法从 AWS 获取身份验证令牌
- linux - 使用 eBPF 测量系统调用引起的 CPU 模式切换开销
- android - 卡在运行 Gradle 任务 'assembleDebug'
- mysql - mysql在对某些表的查询时崩溃