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 测试会发现音效有压缩,但是在正式上又不会。所以我才纳闷,这么点数据,为什么需要那么久,重新发布的包都要全部下载的么?
这个跑进度应该怎么设置才会正确?
对呀,进度条的那个,一会儿满了,一会儿还倒退了,尴尬。