Facebook小游戏启动时 短暂黑屏问题

你把FBInstant.startGameAsync挪到 cc.loaderonProgress = null之前试试,顺便看看小括号和大括号的对应是不是正常的,正常效果应该在转圈的时候场景也在进行加载,场景加载完成后转圈消失。

还是不可以,进度条还是无法消失

请问能不能再main.js中调用外面的模块,如果我能在main.js中调用初始加载场景就可以没有黑屏问题

cc.director.loadScene()就是加载场景的,参数launchScene就是你设置的主界面(一进游戏就显示的场景),FBInstant.startGameAsync()是通知facebook游戏开始,转圈进度条也随着消失。

你试试用下面的代码直接覆盖main.js里面的 Var onStart = function(){…};

var onStart = function () {
cc.view.resizeWithBrowserSize(true);
// UC browser on many android devices have performance issue with retina display
if (cc.sys.os !== cc.sys.OS_ANDROID || cc.sys.browserType !== cc.sys.BROWSER_TYPE_UC) {
cc.view.enableRetina(true);
}

        if (cc.sys.isBrowser) {
            setLoadingDisplay();
        }

        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);
            }
            // qq, wechat, baidu
            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
            );
        }

        // Limit downloading max concurrent task to 2,
        // more tasks simultaneously may cause performance draw back on some android system / brwosers.
        // You can adjust the number based on your own test result, you have to set it before any loading process to take effect.
        if (cc.sys.isBrowser && cc.sys.os === cc.sys.OS_ANDROID) {
            cc.macro.DOWNLOAD_MAX_CONCURRENT = 2;
        }

        // init assets
        cc.AssetLibrary.init({
            libraryPath: 'res/import',
            rawAssetsBase: 'res/raw-',
            rawAssets: settings.rawAssets,
            packedAssets: settings.packedAssets,
            md5AssetsMap: settings.md5AssetsMap
        });

        var launchScene = settings.launchScene;
        cc.director.preloadScene(launchScene,
            function () {
                // Once all assets are loaded, tells the SDK
                // to end loading view and start the game
				cc.director.loadScene(launchScene,
					function () {
						FBInstant.startGameAsync()
						.then(function () {
							// Retrieving context and player information can only be done
							// once startGameAsync() resolves
						})
						.catch(function (e) { cc.error(e); });
						console.log('Success to load scene: ' + launchScene);
						cc.loader.onProgress = null;
					}
				);
            }
        );
    };

还是不行,进度条无法消失

我之前xiuga修改了进度条加载过程,你看是这个原因导致进度条无法消失吗,之前进度条是直接从0变成100,我修改可以从0之100变化

这个你把修改的改回去,再看看进度条会不会消失。你这个改的我看着有点问题,completedCount 和totalCount应该是cc.loader.load的参数

虽然进度条消失了,但还是有短暂黑屏,而且进度条直接是从0变成100

这个方法只是解决黑屏问题,短暂黑屏的问题,你可以延时个100ms再执行FBInstant.startGameAsync()。
你要修改进度条按实际加载走,可以考虑用cc.loader.load预加载场景资源(替换原有的cc.director.preloadScene),这个方法里面会有加载的进度。

cc.loader.load这个也没有加载进度

打印有进度,但就是不显示

也不是不显示,是显示一下0,显示一下100,然后就没了,但打印会重新打印从0到100

main.js里面有个地方原先就有一个方法
function setLoadingDisplay () {
// Loading splash scene
cc.loader.onProgress = function (completedCount, totalCount, item) {
var progress = 100 * completedCount / totalCount;
FBInstant.setLoadingProgress(progress);
};
}
这个会修改进度条的显示,0直接到100,把这个方法的引用注释掉就行了

这个方法注释掉进度条就完全不显示了

我和你用的进度显示方法不太一样,按理说你把这个注释了,你自己写的那个proback方法应该会打印进度条才对

请教兄台,方便的话,能否把你的main.js文件发我看看呀。看了楼上你们对话,还是没有搞清楚如何解决这个黑屏问题。
已经搞了好几天了还是没搞好,万分焦急,请您指点一二,不胜感激!

兄弟,这个问题请问如何解决了呢?能否说一下详细点的解决方案啊。进度从0直接到100的问题是如何解决的呢?小弟鼓捣了好几天,还是感觉无从下手,还望您指点一二啊,万分感谢!

你是指黑屏问题还是,进度条按实际加载情况显示问题

mark

mark