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