CocosCreator引擎修改與定制


1.CCGame.js 修改部分數據腳本的加載時機,避免首屏卡頓

// Load game scripts
var jsList = config[CONFIG_KEY.jsList];
if (jsList && jsList.length > 0) {
    cc.loader.load(jsList, function (err) {
        if (err) throw new Error(JSON.stringify(err));
        self._prepared = true;
        if (cb) cb();
        self.emit(self.EVENT_GAME_INITED);
    });
}
else {
    if (cb) cb();
    self.emit(self.EVENT_GAME_INITED);
}

 

2.CCLoader.js 加載代碼回退處理

1.6.1 -> 1.5.1避免加載並發時回調次數不足

回退后該代碼在1.6.1中運行穩定,最新版本需要驗證

回退僅處理了items.destroy()這一條語句的位置

var queue = LoadingItems.create(this, progressCallback, function (errors, items) {
    callInNextTick(function () {
        if (completeCallback) {
            if (singleRes) {
                let id = res.url;
                completeCallback.call(self, items.getError(id), items.getContent(id));
            }
            else {
                completeCallback.call(self, errors, items);
            }
            completeCallback = null;
            //++
            items.destroy();
        }

        if (CC_EDITOR) {
            for (let id in self._cache) {
                if (self._cache[id].complete) {
                    self.removeItem(id);
                }
            }
        }
        //-- items.destroy();
    });
});

 

3.CCView.js 判斷分辨率,切換適配模式(ipx/全面屏)

setResolutionPolicy: function (resolutionPolicy) {
    //增加對於ipx全面屏的特殊處理(橫版游戲)
    if(cc.view._frameSize.width / cc.view._frameSize.height > 1.778 /*1136/640*/){
        resolutionPolicy = cc.ResolutionPolicy.SHOW_ALL //cc.ResolutionPolicy.FIXED_HEIGHT
    }
    //end
    var _t = this;
    if (resolutionPolicy instanceof cc.ResolutionPolicy) {
        _t._resolutionPolicy = resolutionPolicy;
    }
    // Ensure compatibility with JSB
    else {
        var _locPolicy = cc.ResolutionPolicy;
        if(resolutionPolicy === _locPolicy.EXACT_FIT)
            _t._resolutionPolicy = _t._rpExactFit;
        if(resolutionPolicy === _locPolicy.SHOW_ALL)
            _t._resolutionPolicy = _t._rpShowAll;
        if(resolutionPolicy === _locPolicy.NO_BORDER)
            _t._resolutionPolicy = _t._rpNoBorder;
        if(resolutionPolicy === _locPolicy.FIXED_HEIGHT)
            _t._resolutionPolicy = _t._rpFixedHeight;
        if(resolutionPolicy === _locPolicy.FIXED_WIDTH)
            _t._resolutionPolicy = _t._rpFixedWidth;
    }
},

 

4.CCInputManager.js 部分iframe情況下點擊偏移處理

注釋掉全部兩處element.focus(驗證無誤)

 

5.腳本跨域獲取error堆棧信息

downloader.js

function downloadScript

增加script element屬性

s.crossOrigin = true


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM