facebook instant game 游戏点开加载场景,进度条显示问题,

facebook instant game 游戏点开加载场景,资源很多但是进度条直接从0到了100%。creator 版本1.10.1

同样的问题,构建后,我发现onProgress返回的totalCount在不断变化,开始的时候只有1,加载完成后马上变成了100%,然后totalCount又变成了其他更大的数值,然后不断的加载,没搞懂这个怎么,楼主有解决这个问题没

同样求助。现在没办法只好启用creator的Loading,感觉效果不好。

facebook-instant-games 模板文件夹里的main.js 文件 onStart 方法换成这个(当前适用1.10版,2.0的还没测试过):

var onStart = function () {
	cc.view.resizeWithBrowserSize(true);
	var loadingDisplayCallback = null;
	if (cc.sys.isBrowser) {
		loadingDisplayCallback = function (completedCount, totalCount, item) {
			var progress = 100 * completedCount / totalCount;
			FBInstant.setLoadingProgress(progress);
		};
	}
	if (cc.sys.isMobile) {
		if (settings.orientation === 'landscape') {
			cc.view.setOrientation(cc.macro.ORIENTATION_LANDSCAPE);
		} else if (settings.orientation === 'portrait') {
			cc.view.setOrientation(cc.macro.ORIENTATION_PORTRAIT);
		}
		cc.view.enableAutoFullScreen(cc.sys.browserType !== cc.sys.BROWSER_TYPE_BAIDU && cc.sys.browserType !== cc.sys.BROWSER_TYPE_WECHAT && cc.sys.browserType !== cc.sys.BROWSER_TYPE_MOBILE_QQ);
	}
	if (cc.sys.isBrowser && cc.sys.os === cc.sys.OS_ANDROID) {
		cc.macro.DOWNLOAD_MAX_CONCURRENT = 2;
	}
	cc.AssetLibrary.init({
		libraryPath: 'res/import',
		rawAssetsBase: 'res/raw-',
		rawAssets: settings.rawAssets,
		packedAssets: settings.packedAssets,
		md5AssetsMap: settings.md5AssetsMap
	});
	var launchScene = settings.launchScene;
	var info = cc.director._getSceneUuid(launchScene);
	if (info) {
		cc.director.emit(cc.Director.EVENT_BEFORE_SCENE_LOADING, launchScene);
		cc.loader.load({
			uuid: info.uuid,
			type: 'uuid'
		}, loadingDisplayCallback, function (error, asset) {
			if (error) {
				cc.errorID(1210, launchScene, error.message);
			} else {
				cc.director.loadScene(launchScene, function () {
					console.log('Success to load scene: ' + launchScene);
					FBInstant.startGameAsync().then(function () {
						console.log('FB-Start!');
						cc.systemEvent.emit('fbgame-start');
					}).catch(function (e) {
						cc.error(e);
					});
				});
			}
		});
	} else {
		var error = 'Can not preload the scene "' + launchScene + '" because it is not in the build settings.';
		cc.error('preloadScene: ' + error);
	}
};

为了防止出现有一开始会黑屏,FBInstant.startGameAsync() 放到了初始场景load完之后了。
这个根据需求自行更改。

用了这个之后,感觉加载还是要好久,不清楚到底是为什么,特别是一开始 0% 的时候。我看 cocos 最新版本也没有改这个文件。

这个不是改变加载速度的,这个只是显示加载进度从0一直加到100。如果加载速度慢,就是初始场景的东西太多或者资源太大了

怎么样才确定是大呢?我现在输出的 zip 包 3.7m,如果我把 fb-instant-game 目录下的资源自己手动压缩可以减少到 2.5M。好奇怪的,目前在 Test 测试会发现音效有压缩,但是在正式上又不会。所以我才纳闷,这么点数据,为什么需要那么久,重新发布的包都要全部下载的么?

这个跑进度应该怎么设置才会正确?

对呀,进度条的那个,一会儿满了,一会儿还倒退了,尴尬。