267 lines
11 KiB
JavaScript
267 lines
11 KiB
JavaScript
|
|
(function () {
|
|
var scripts = [{"deps":{"./assets/Script/DynamicAtlasManager":14,"./assets/Script/GameManager":19,"./assets/Script/GameOver":21,"./assets/Script/GameScene":12,"./assets/Script/Load":16,"./assets/Script/Map":15,"./assets/Script/Mask":4,"./assets/Script/RankManager":17,"./assets/Script/Window":18,"./assets/Script/Block":20,"./assets/Script/Sdk/MiniGameSdk":1,"./assets/migration/use_v2.1-2.2.1_cc.Toggle_event":6,"./assets/Script/ControlManager":22,"./assets/Script/module/Crypto/crypto-js.min":29,"./assets/Script/module/Crypto/HttpUtil":28,"./assets/Script/module/GameStart/GameAppStart":2,"./assets/Script/module/Music/AudioManager":8,"./assets/Script/module/Notification/Notification":5,"./assets/Script/module/RankList/List":24,"./assets/Script/module/RankList/ItemRender":11,"./assets/Script/module/Share/share":9,"./assets/Script/module/Storage/Storage":13,"./assets/Script/module/Tool/GameTool":7,"./assets/Script/module/Config/GameConfig":10,"./tiledmap-optimize-resource/Script/TmoSprite":23,"./tiledmap-optimize-resource/Script/TmoTiledLayer":3,"./tiledmap-optimize-resource/Script/TmoTiledMap":25,"./tiledmap-optimize-resource/Script/TmoAssembler":26,"./tiledmap-optimize-resource/Script/TmoObjectGroup":27},"path":"preview-scripts/__qc_index__.js"},{"deps":{},"path":"preview-scripts/assets/Script/Sdk/MiniGameSdk.js"},{"deps":{"../Config/GameConfig":10,"../Crypto/HttpUtil":28,"../Music/AudioManager":8,"../Notification/Notification":5,"../Storage/Storage":13,"../Tool/GameTool":7},"path":"preview-scripts/assets/Script/module/GameStart/GameAppStart.js"},{"deps":{},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoTiledLayer.js"},{"deps":{},"path":"preview-scripts/assets/Script/Mask.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Notification/Notification.js"},{"deps":{},"path":"preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Tool/GameTool.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Music/AudioManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Share/share.js"},{"deps":{"../Share/share":9},"path":"preview-scripts/assets/Script/module/Config/GameConfig.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/RankList/ItemRender.js"},{"deps":{},"path":"preview-scripts/assets/Script/GameScene.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Storage/Storage.js"},{"deps":{},"path":"preview-scripts/assets/Script/DynamicAtlasManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/Map.js"},{"deps":{},"path":"preview-scripts/assets/Script/Load.js"},{"deps":{"./module/RankList/List":24},"path":"preview-scripts/assets/Script/RankManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/Window.js"},{"deps":{"./Block":20},"path":"preview-scripts/assets/Script/GameManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/Block.js"},{"deps":{},"path":"preview-scripts/assets/Script/GameOver.js"},{"deps":{},"path":"preview-scripts/assets/Script/ControlManager.js"},{"deps":{"./TmoAssembler":26},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoSprite.js"},{"deps":{"./ItemRender":11},"path":"preview-scripts/assets/Script/module/RankList/List.js"},{"deps":{"./TmoTiledLayer":3,"./TmoObjectGroup":27},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoTiledMap.js"},{"deps":{},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoAssembler.js"},{"deps":{"./TmoSprite":23},"path":"preview-scripts/tiledmap-optimize-resource/Script/TmoObjectGroup.js"},{"deps":{"./crypto-js.min.js":29},"path":"preview-scripts/assets/Script/module/Crypto/HttpUtil.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Crypto/crypto-js.min.js"}];
|
|
var entries = ["preview-scripts/__qc_index__.js"];
|
|
var bundleScript = 'preview-scripts/__qc_bundle__.js';
|
|
|
|
/**
|
|
* Notice: This file can not use ES6 (for IE 11)
|
|
*/
|
|
var modules = {};
|
|
var name2path = {};
|
|
|
|
// Will generated by module.js plugin
|
|
// var scripts = ${scripts};
|
|
// var entries = ${entries};
|
|
// var bundleScript = ${bundleScript};
|
|
|
|
if (typeof global === 'undefined') {
|
|
window.global = window;
|
|
}
|
|
|
|
var isJSB = typeof jsb !== 'undefined';
|
|
|
|
function getXMLHttpRequest () {
|
|
return window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject('MSXML2.XMLHTTP');
|
|
}
|
|
|
|
function downloadText(url, callback) {
|
|
if (isJSB) {
|
|
var result = jsb.fileUtils.getStringFromFile(url);
|
|
callback(null, result);
|
|
return;
|
|
}
|
|
|
|
var xhr = getXMLHttpRequest(),
|
|
errInfo = 'Load text file failed: ' + url;
|
|
xhr.open('GET', url, true);
|
|
if (xhr.overrideMimeType) xhr.overrideMimeType('text\/plain; charset=utf-8');
|
|
xhr.onload = function () {
|
|
if (xhr.readyState === 4) {
|
|
if (xhr.status === 200 || xhr.status === 0) {
|
|
callback(null, xhr.responseText);
|
|
}
|
|
else {
|
|
callback({status:xhr.status, errorMessage:errInfo + ', status: ' + xhr.status});
|
|
}
|
|
}
|
|
else {
|
|
callback({status:xhr.status, errorMessage:errInfo + '(wrong readyState)'});
|
|
}
|
|
};
|
|
xhr.onerror = function(){
|
|
callback({status:xhr.status, errorMessage:errInfo + '(error)'});
|
|
};
|
|
xhr.ontimeout = function(){
|
|
callback({status:xhr.status, errorMessage:errInfo + '(time out)'});
|
|
};
|
|
xhr.send(null);
|
|
};
|
|
|
|
function loadScript (src, cb) {
|
|
if (typeof require !== 'undefined') {
|
|
require(src);
|
|
return cb();
|
|
}
|
|
|
|
// var timer = 'load ' + src;
|
|
// console.time(timer);
|
|
|
|
var scriptElement = document.createElement('script');
|
|
|
|
function done() {
|
|
// console.timeEnd(timer);
|
|
// deallocation immediate whatever
|
|
scriptElement.remove();
|
|
}
|
|
|
|
scriptElement.onload = function () {
|
|
done();
|
|
cb();
|
|
};
|
|
scriptElement.onerror = function () {
|
|
done();
|
|
var error = 'Failed to load ' + src;
|
|
console.error(error);
|
|
cb(new Error(error));
|
|
};
|
|
scriptElement.setAttribute('type','text/javascript');
|
|
scriptElement.setAttribute('charset', 'utf-8');
|
|
scriptElement.setAttribute('src', src);
|
|
|
|
document.head.appendChild(scriptElement);
|
|
}
|
|
|
|
function loadScripts (srcs, cb) {
|
|
var n = srcs.length;
|
|
|
|
srcs.forEach(function (src) {
|
|
loadScript(src, function () {
|
|
n--;
|
|
if (n === 0) {
|
|
cb();
|
|
}
|
|
});
|
|
})
|
|
}
|
|
|
|
function formatPath (path) {
|
|
let destPath = window.__quick_compile_project__.destPath;
|
|
if (destPath) {
|
|
let prefix = 'preview-scripts';
|
|
if (destPath[destPath.length - 1] === '/') {
|
|
prefix += '/';
|
|
}
|
|
path = path.replace(prefix, destPath);
|
|
}
|
|
return path;
|
|
}
|
|
|
|
window.__quick_compile_project__ = {
|
|
destPath: '',
|
|
|
|
registerModule: function (path, module) {
|
|
path = formatPath(path);
|
|
modules[path].module = module;
|
|
},
|
|
|
|
registerModuleFunc: function (path, func) {
|
|
path = formatPath(path);
|
|
modules[path].func = func;
|
|
|
|
var sections = path.split('/');
|
|
var name = sections[sections.length - 1];
|
|
name = name.replace(/\.(?:js|ts|json)$/i, '');
|
|
name2path[name] = path;
|
|
},
|
|
|
|
require: function (request, path) {
|
|
var m, requestScript;
|
|
|
|
path = formatPath(path);
|
|
if (path) {
|
|
m = modules[path];
|
|
if (!m) {
|
|
console.warn('Can not find module for path : ' + path);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
if (m) {
|
|
let depIndex = m.deps[request];
|
|
// dependence script was excluded
|
|
if (depIndex === -1) {
|
|
return null;
|
|
}
|
|
else {
|
|
requestScript = scripts[ m.deps[request] ];
|
|
}
|
|
}
|
|
|
|
let requestPath = '';
|
|
if (!requestScript) {
|
|
// search from name2path when request is a dynamic module name
|
|
if (/^[\w- .]*$/.test(request)) {
|
|
requestPath = name2path[request];
|
|
}
|
|
|
|
if (!requestPath) {
|
|
if (CC_JSB) {
|
|
return require(request);
|
|
}
|
|
else {
|
|
console.warn('Can not find deps [' + request + '] for path : ' + path);
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
requestPath = formatPath(requestScript.path);
|
|
}
|
|
|
|
let requestModule = modules[requestPath];
|
|
if (!requestModule) {
|
|
console.warn('Can not find request module for path : ' + requestPath);
|
|
return null;
|
|
}
|
|
|
|
if (!requestModule.module && requestModule.func) {
|
|
requestModule.func();
|
|
}
|
|
|
|
if (!requestModule.module) {
|
|
console.warn('Can not find requestModule.module for path : ' + path);
|
|
return null;
|
|
}
|
|
|
|
return requestModule.module.exports;
|
|
},
|
|
|
|
run: function () {
|
|
entries.forEach(function (entry) {
|
|
entry = formatPath(entry);
|
|
var module = modules[entry];
|
|
if (!module.module) {
|
|
module.func();
|
|
}
|
|
});
|
|
},
|
|
|
|
load: function (cb) {
|
|
var self = this;
|
|
|
|
var srcs = scripts.map(function (script) {
|
|
var path = formatPath(script.path);
|
|
modules[path] = script;
|
|
|
|
if (script.mtime) {
|
|
path += ("?mtime=" + script.mtime);
|
|
}
|
|
return path;
|
|
});
|
|
|
|
console.time && console.time('load __quick_compile_project__');
|
|
// jsb can not analysis sourcemap, so keep separate files.
|
|
if (bundleScript && !isJSB) {
|
|
downloadText(formatPath(bundleScript), function (err, bundleSource) {
|
|
console.timeEnd && console.timeEnd('load __quick_compile_project__');
|
|
if (err) {
|
|
console.error(err);
|
|
return;
|
|
}
|
|
|
|
let evalTime = 'eval __quick_compile_project__ : ' + srcs.length + ' files';
|
|
console.time && console.time(evalTime);
|
|
var sources = bundleSource.split('\n//------QC-SOURCE-SPLIT------\n');
|
|
for (var i = 0; i < sources.length; i++) {
|
|
if (sources[i]) {
|
|
window.eval(sources[i]);
|
|
// not sure why new Function cannot set breakpoints precisely
|
|
// new Function(sources[i])()
|
|
}
|
|
}
|
|
self.run();
|
|
console.timeEnd && console.timeEnd(evalTime);
|
|
cb();
|
|
})
|
|
}
|
|
else {
|
|
loadScripts(srcs, function () {
|
|
self.run();
|
|
console.timeEnd && console.timeEnd('load __quick_compile_project__');
|
|
cb();
|
|
});
|
|
}
|
|
}
|
|
};
|
|
|
|
// Polyfill for IE 11
|
|
if (!('remove' in Element.prototype)) {
|
|
Element.prototype.remove = function () {
|
|
if (this.parentNode) {
|
|
this.parentNode.removeChild(this);
|
|
}
|
|
};
|
|
}
|
|
})();
|
|
|