1.4 如何获取场景切换的进度回调?

PreloadScene和LoadScene有没有进度回调呢?

看过一些原来提问的帖子,讲到了cc.loader.onProgress,但这个是全局回调,我可能在别的地方对进度回调的处理不一样。

其实我就是想,切换场景的时候,如果下一个场景资源较多,切换的时候有一个进度回调,这样可以根据进度做一个载入动画。大家对于这个需求是怎么做的呢

我目前代码是这样:

jumpHomeScene: function() {

    cc.loader.onProgress = function(completedCount, totalCount, item) {
        cc.log('step 1----------');
        var progress = (100 * completedCount / totalCount).toFixed(2);
        cc.log(progress + '%');
    };

    cc.loader.onComplete = function(errors, items) {
        cc.log('step 2----------');

        if (error){
            cc.log('Completed with ' + errors.length + ' errors');
        }
        else{
            cc.log('Completed ' + items.totalCount + ' items');
        }
    };

    cc.director.preloadScene('HomePage', function() {
        cc.log('step 3----------');

        cc.log('Next scene preloaded');
        cc.director.loadScene("HomePage");
    });
},

虽然这样是得到了进度,但是修改了全局的onProgress,别的场景也会执行onProgress里的内容。

在别的帖子看到的回复:

// 第一种用法:onProgress 会在所有后续 load( res, onComplete ) 调用中作为进度函数回调
cc.loader.onProgress = function () {}
cc.loader.load( res, onComplete );

// 第二种用法:onProgress 只会在本次加载中回调
cc.loader.load( res, onProgress, onComplete );