Files
2026-05-23 22:10:14 +08:00

212 lines
7.2 KiB
JavaScript

window.boot = function() {
var settings = window._CCSettings;
window._CCSettings = undefined;
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 ] ];
}
}
}
var subpackages = settings.subpackages;
for( var subId in subpackages ) {
var uuidArray = subpackages[ subId ].uuids;
if( uuidArray ) {
for( var k = 0, l = uuidArray.length; k < l; k++ ) {
if( typeof uuidArray[ k ] === 'number' ) {
uuidArray[ k ] = uuids[ uuidArray[ k ] ];
}
}
}
}
// if($jsdk){
// $jsdk.init({type:"ios"},(result)=>{});
// $jsdk.appsFlyerLibEvent({Event:"1_1_6_first_loading_start",Values:''});//af打点
// $jsdk.fbLogEvent({Event:"1_1_6_first_loading_start"});//fb打点
// }
}
function setLoadingDisplay() {
// Loading splash scene
var splash = document.getElementById( 'splash' );
// var progressBar = splash.querySelector('.progress-bar span');
cc.loader.onProgress = function( completedCount, totalCount, item ) {
//var percent = 100 * completedCount / totalCount;
//if (progressBar) {
//progressBar.style.width = percent.toFixed(2) + '%';
//}
};
//splash.style.display = 'block';
//progressBar.style.width = '0%';
cc.director.once( cc.Director.EVENT_AFTER_SCENE_LAUNCH, function() {
// if($jsdk){
// $jsdk.appsFlyerLibEvent({Event:"1_1_7_web_init_succeed",Values:''});//af打点
// $jsdk.fbLogEvent({Event:"1_1_7_web_init_succeed"});//fb打点
// }
splash.style.display = 'none';
} );
}
var onStart = function() {
// if($jsdk){
// $jsdk.appsFlyerLibEvent({Event:"1_1_8_download_resource_start",Values:''});//af打点
// $jsdk.fbLogEvent({Event:"1_1_8_download_resource_start"});//fb打点
// }
cc.loader.downloader._subpackages = settings.subpackages;
cc.view.enableRetina( true );
cc.view.resizeWithBrowserSize( true );
if( cc.sys.isBrowser ) {
setLoadingDisplay();
}
if( cc.sys.isMobile ) {
if( settings.orientation === 'landscape' ) {
cc.view.setOrientation( cc.macro.ORIENTATION_LANDSCAPE );
}
else if( settings.orientation === 'portrait' ) {
cc.view.setOrientation( cc.macro.ORIENTATION_PORTRAIT );
}
cc.view.enableAutoFullScreen( [
cc.sys.BROWSER_TYPE_BAIDU,
cc.sys.BROWSER_TYPE_BAIDU_APP,
cc.sys.BROWSER_TYPE_WECHAT,
cc.sys.BROWSER_TYPE_MOBILE_QQ,
cc.sys.BROWSER_TYPE_MIUI,
].indexOf( cc.sys.browserType ) < 0 );
}
// Limit downloading max concurrent task to 2,
// more tasks simultaneously may cause performance draw back on some android system / browsers.
// You can adjust the number based on your own test result, you have to set it before any loading process to take effect.
if( cc.sys.isBrowser && cc.sys.os === cc.sys.OS_ANDROID ) {
cc.macro.DOWNLOAD_MAX_CONCURRENT = 2;
}
function loadScene( launchScene ) {
cc.director.loadScene( launchScene,
function( err ) {
if( !err ) {
if( cc.sys.isBrowser ) {
// show canvas
var canvas = document.getElementById( 'GameCanvas' );
canvas.style.visibility = '';
var div = document.getElementById( 'GameDiv' );
if( div ) {
div.style.backgroundImage = '';
}
}
cc.loader.onProgress = null;
console.log( 'Success to load scene: ' + launchScene );
console.log( "webview init................" )
// $jsdk.webInit();//游戏界面准备完毕
}
else if( CC_BUILD ) {
setTimeout( function() {
loadScene( launchScene );
}, 1000 );
}
}
);
}
var launchScene = settings.launchScene;
// load scene
loadScene( launchScene );
};
// jsList
var jsList = settings.jsList;
var bundledScript = settings.debug ? 'src/project.dev.js' : 'src/project.js';
if( jsList ) {
jsList = jsList.map( function( x ) {
return 'src/' + x;
} );
jsList.push( bundledScript );
}
else {
jsList = [ bundledScript ];
}
var option = {
id: 'GameCanvas',
scenes: settings.scenes,
debugMode: settings.debug ? cc.debug.DebugMode.INFO : cc.debug.DebugMode.ERROR,
showFPS: settings.debug,
frameRate: 60,
jsList: jsList,
groupList: settings.groupList,
collisionMatrix: settings.collisionMatrix,
};
// init assets
cc.AssetLibrary.init( {
libraryPath: 'res/import',
rawAssetsBase: 'res/raw-',
rawAssets: settings.rawAssets,
packedAssets: settings.packedAssets,
md5AssetsMap: settings.md5AssetsMap,
subpackages: settings.subpackages
} );
cc.game.run( option, onStart );
};
if( window.jsb ) {
var isRuntime = ( typeof loadRuntime === 'function' );
if( isRuntime ) {
require( 'src/settings.js' );
require( 'src/cocos2d-runtime.js' );
require( 'jsb-adapter/engine/index.js' );
}
else {
require( 'src/settings.js' );
require( 'src/cocos2d-jsb.js' );
require( 'jsb-adapter/jsb-engine.js' );
}
cc.macro.CLEANUP_IMAGE_CACHE = true;
window.boot();
}