万一onload里东西多了没有进度条岂不是要等很长时间

就是现在没有直接的api,加载场景也是加载资源,你可以试试cc.loader.onProgress
还有就是你可以试试这个搜索

我试过了onprogress获取的是资源的进度,如果我onload的东西多了在进度条100的时候会卡很久,等onload加载完成再进场景,

求关注

任然在等待

等待中

很多人都根本不懂自己在问什么~~ 真实进度是什么概念? 就是已经确定了在哪个时间点会完成,在那个时间点之前的某个时间点相对于开始时间的一个进度。。。。 那么请问,既然你都知道了哪个时间点会完成,你怎么不会算进度呢?

当然,你是不可能知道会在哪个时间点加载完成的~ 伪命题~ 仔细理解下上边热心观众的回复吧。。。

比如你综合一下他们的解决方案,设置一个进度条,由资源加载和预计代码执行时间共同参与的。

然后,根据现有的资源加载api计算出进度条前半部分的走势。

最后,评估下你代码的走势,时间匀速(获取贝塞尔曲线也随你心情)步进就好了~

无知还不用心最可怕~

我发现研究一下午无解的问题,从一个场景加载到另外一个场景,如果新场景的onload执行的东西太多肯定会卡一下的。

完蛋,,你这项目卡在这卡死了。。

应该在onload里找优化

我还是想知道如果onload里的东西多了 在加载场景前会卡一下 这个改怎么解决

这是有多少东西啊?一般在进入A场景后,就开始预加载B场景了,打开B的时候就秒开了,再不行就设置B场景延迟加载资源。如果你的游戏是那种实时多人同屏战斗,很多网络请求同步啥的,那就弄个过渡场景(类似于王者荣耀选好人物战斗准备阶段)

你这个是优化问题了。。。

关于切换场景的优化,你可以参考大神做法
http://forum.cocos.com/t/prefab/47803/20

如果下一个场景onload里有prefrab,需要很久才能生成界面,要卡很久,有优化方案吗

如果新场景中包括「场景资源」和「预加载资源」
简单做法:可以划分一个比例进行模拟加载,比如 1 个场景占 50%,剩下的资源占 50%,具体每个资源占多少可以通过除以所有资源数量可得。
详细做法:计算每个资源的大小,生成资源配置文件,根据已加载的资源大小及总资源大小,计算当前加载进度。

请问有人知道以下问题怎么解决吗?关于微信小游戏的。
ios系统在loading页面预加载资源的时候切换微信小游戏至后台,再返回的时候跳转至其他场景页面渲染是资源不全的,但是加载资源的回调里可以看出资源已经全部加载成功了,且切回来用了onShow监听,回调里用过cc.game.resume,用过preloadScene,都没有用,请问有什么好的处理方法吗?
谢谢。

不要在onLoad里进行io的同步操作(jsb.fileUtils的文件读写). 内存操作可以理解为不会卡顿, 你看得到的卡顿都是io引起的(内存垃圾回收也会卡顿)

onload里东西再多也应该是感受不到的,除非卡io,那么问题来了,io的东西为什么不用异步呢?

loadingFun(sceneName, callback) {
        let info = cc.director._getSceneUuid(sceneName);
        if (info) {
            cc.director.emit(cc.Director.EVENT_BEFORE_SCENE_LOADING, sceneName);
            cc.loader.load({
                    uuid: info.uuid,
                    type: 'uuid'
                },
                (completedCount, totalCount, item) => {
                    console.log(completedCount + '/' + totalCount);//进度
                },
                () => {
                    if (this._completedCount >= this._totalCount && this._completedCount > 0) {
                        callback();//回调
                    }
                }
            )
        }
    },

可以参考下

是啊啊

用了下这个代码 发现进入不了回调