Egret社区

安卓native程序启动黑平很久

2018-6-22 15:44
85611
1银子
程序启动后我首先从服务器下载更新资源,这个和EGRET的热更框架一样,当下载完毕后,我调用下的初始化流程,也时官方标准流程
        gameEngine.game_engine_init(this);
                engineInited = true;
                View gameEngineView = gameEngine.game_engine_get_view();
                setContentView(gameEngineView);

发现这两句话执行后,屏幕要黑差不多3秒才能到主程序中Main函数的onAddToStage执行。于是我想用gameEngine.game_engine_set_loading_view(new GameLoadingView(this));做一个过度界面盖在上面但是发现这个过度加载界面瞬间就被关闭,我想问的时如何让我自己控制这个进度条的关闭,我搜了下资料,不知道native模式下如何设置

分享到 :
0 人收藏

11 个回复

倒序浏览
StudyPerDay  登堂入室 | 2018-6-22 16:17:39
这个问题已经无力吐槽了,貌似官方基本不care,没有一个像样的方案放出来。
li574000  登堂入室 | 2018-6-22 18:35:39
是啊,求解决方案,我用的是5.0.12,新版不知道啥情况
li574000  登堂入室 | 2018-6-22 19:06:52
一开始尝试用一个加载页覆盖,调用setContentView(“加载页VIEW);但是只要一调用gameEngine.game_engine_set_loading_view(new GameLoadingView(this));这句我自己的过度界面就没了, 所以还是只能用官方的自己设置一个进度条的方式,但是没发现这个怎么自己控制他关闭啊,现在是官方不知道什么时候就把他给闪关了,求官方解决方案
wtf  登堂入室 | 2018-6-23 12:19:34
li574000  登堂入室 | 2018-6-25 15:14:14
楼上的兄弟你发的帖子我看过,那个解决不了我现在的问题,只要初始化引擎setContentView(gameEngineView);,上面说的自定义图片的VIEW就被清了,然后就是大概3秒的黑屏
li574000  登堂入室 | 2018-6-25 15:16:10
黑屏期间从打印LOG看时引擎执行一些初始化动作,等他初始化完毕后才轮到我游戏逻辑执行,此时差不多3秒中的时间。
fanjiaqi  自成一派 | 2018-6-25 17:19:53
1.设置自定义视图gameEngine.game_engine_set_loading_view
2.getGameOptions() {
...
options.put("customLoading",1); //添加自定义加载配置
}
3.在egret代码中,LoadingUI.ts中的setProgress方法中添加
public setProgress(current:number, total:number, totalPercent:number, completedPercent:number = 0):void {
        var percent:number = Math.round(current/total*totalPercent*100) + completedPercent*100;
        this.textField.text = `Loading...${percent}%`;

//加上下面这三行
        var json = { current :  percent  ,total :  100 };
        var jsonStr = JSON.stringify(json);
        egret.ExternalInterface.call("customLoadingFlag" ,jsonStr);
    }
这样就可以了。
解释:native中预留了一个自定义进度的方法,通过设置引擎参数来开启,开启之后,安卓loadingview的前50%进度来显示引擎启动,热更新等进度,而引擎启动后的egret加载,通过egret.ExternalInterface接口传送给native来完成后50%的加载(只要是res的加载)。这样在native中使用一个加载界面完成全部加载进度的展示。完美解决native加载到egret加载中间的黑屏问题。
li574000  登堂入室 | 2018-6-26 10:14:45
非常感谢,我就是要找game_engine_set_loading_view的控制方法,一直没看到详细文档
li574000  登堂入室 | 2018-6-26 12:13:44
试验了下,还是不行,只有新的APK包第一次运行可以看到进度条,以后再打开程序运行就再也看不到进度调了,并且安卓提示native没有注册customLoadingFlag的处理消息,于是我自己注册了一个
        gameEngine.setRuntimeInterface("customLoadingFlag",
                                new IRuntimeInterface() {
                                        @Override
                                        public void callback(String message) {
                                       
                                                Log.i("customLoadingFlag", message);
                                        }
                                });
虽然部提示了,但是问题依然没解决。感觉那个customLoading变量没用,我就算不设置这个变量,目前也是第一次运行程序可以看到进度条,以后运行就看不到进度条了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部