子游戏+大厅共享资源临时实现方案
cc.AssetLibrary.init 每调用一次 不清理上一次的数据
需要 2个全局变量 和 一个 路径临时变量
改造 jsb_polyfill.js jsb_polyfill.js.zip (220.0 KB)
比较适用一开始就 使用全局资源的使用
主main.js
var _uuidToRawAsset = {};
var this_pathToUuid = {};
cc.GAMEFILE = “”;
子游戏 main.js
`cc.INGAME = (jsb.fileUtils ? jsb.fileUtils.getWritablePath() : ‘/’)+“ALLGame/benchibaoma/”;
cc.GAMEFILE = cc.INGAME;
cc.sys.garbageCollect();
if(!cc.benchibaoma || cc.QIANGXING == 1){
cc.benchibaoma = 1;
var _CCSettings = null ;
var settings = null;
require(cc.INGAME+'src/settings.js');
settings = window._CCSettings;
window._CCSettings = undefined;
require(cc.INGAME+'src/project.js');
if ( !settings.debug ) {
var uuids = settings.uuids;
var rawAssets = settings.rawAssets;
var assetTypes = settings.assetTypes;
var realRawAssets = settings.rawAssets = {};
for (var mount in rawAssets) {
var entries = rawAssets[mount];
var realEntries = realRawAssets[mount] = {};
for (var id in entries) {
var entry = entries[id];
var type = entry[1];
// retrieve minified raw asset
if (typeof type === 'number') {
entry[1] = assetTypes[type];
}
// retrieve uuid
realEntries[uuids[id] || id] = entry;
}
}
var scenes = settings.scenes;
for (var i = 0; i < scenes.length; ++i) {
var scene = scenes[i];
if (typeof scene.uuid === 'number') {
scene.uuid = uuids[scene.uuid];
}
}
var packedAssets = settings.packedAssets;
for (var packId in packedAssets) {
var packedIds = packedAssets[packId];
for (var j = 0; j < packedIds.length; ++j) {
if (typeof packedIds[j] === 'number') {
packedIds[j] = uuids[packedIds[j]];
}
}
}
}
for(var ss in settings.scenes){
cc.game._sceneInfos.push(settings.scenes[ss]);
}
// init assets
cc.AssetLibrary.init({
libraryPath: 'res/import',
rawAssetsBase: 'res/raw-',
rawAssets: settings.rawAssets,
packedAssets: settings.packedAssets,
md5AssetsMap: settings.md5AssetsMap
});
}
//你的场景db
var launchScene = “db://assets/changci/changcibcbma.fire”;
// load scene
if (cc.runtime) {
cc.director.setRuntimeLaunchScene(launchScene);
}
cc.director.loadScene(launchScene, null,
function () {
if (cc.sys.isBrowser) {
// show canvas
canvas.style.visibility = '';
var div = document.getElementById('GameDiv');
if (div) {
div.style.backgroundImage = '';
}
}
cc.loader.onProgress = null;
cc.GAMEFILE = "";
console.log('Success to load scene: ' + launchScene);
}
);
`
返回大厅直接使用
cc.sys.garbageCollect();
cc.director.preloadScene(“dating”, function (v) {
cc.director.loadScene("dating");
});