如何移除Phaser 2 CE开发Facebook Instant Games的启动加载进度
移除Facebook Instant Games默认加载进度的方法
其实解决这个问题很简单,默认的加载进度界面是因为你调用了FBInstant.setLoadingProgress()方法——这个API是用来通知Facebook SDK当前的加载进度,SDK会自动帮你渲染对应的进度UI。要移除它,只需要两步操作:
- 删掉所有
FBInstant.setLoadingProgress()的调用 - 在游戏资源加载完成后,手动调用
FBInstant.startGameAsync()来结束加载阶段,正式进入游戏
针对你给出的代码,修改后的版本如下:
FBInstant.initializeAsync() .then(function() { var images = ['phaser2']; // 监听Phaser的资源加载完成事件 game.load.onComplete.add(function() { // 通知SDK加载完成,进入游戏阶段 FBInstant.startGameAsync() .then(function() { // 这里可以写游戏启动后的逻辑,比如初始化场景、开始游戏循环等 }); }, this); // 加载资源,不再更新SDK的加载进度 for (var i=0; i < images.length; i++) { var assetName = images[i]; game.load.image(assetName, './assets/' + assetName + '.png'); } // 启动Phaser的加载流程(如果之前没自动启动的话) game.load.start(); });
补充说明:
- 如果你之前依赖Phaser自动处理加载流程,
game.load.start()可能已经被自动调用,但显式加上更稳妥,确保资源加载流程正常触发。 - 调用
startGameAsync()是必须的,否则Facebook SDK会一直停留在加载状态,不会进入游戏界面。修改后,默认的加载进度条就不会再显示了,你可以完全用Phaser自己的加载界面来替代。
内容的提问来源于stack exchange,提问作者albator2018
相关产品推荐
相关产品推荐

