//管理js文件 获取modeldata.js 判断是否有特殊的字段,如果有就先加载SpecialScene.js 里面有对特殊场景处理的代码 否则就直接加载main var Manage = function() { this.time = "?" + new Date().getTime(); this.loadAudio(); }; //动态加载js文件 Manage.prototype.LoadJs = function(_files, succes) { /* 已加载文件缓存列表,用于判断文件是否已加载过,若已加载则不再次加载*/ var classcodes = []; var FileArray = []; if (typeof _files === "object") { FileArray = _files; } else { /*如果文件列表是字符串,则用,切分成数组*/ if (typeof _files === "string") { FileArray = _files.split(","); } } if (FileArray != null && FileArray.length > 0) { var LoadedCount = 0; for (var i = 0; i < FileArray.length; i++) { loadFile(FileArray[i], function() { LoadedCount++; if (LoadedCount == FileArray.length) { try { succes(); } catch (err) { console.log("err: 您未定义回调"); } } }); } } /*加载JS文件,url:文件路径,success:加载成功回调函数*/ function loadFile(url, success) { if (!FileIsExt(classcodes, url)) { var _ThisType = GetFileType(url); var ThisType = _ThisType.indexOf("?") == -1 ? _ThisType : _ThisType.substring(0, _ThisType.indexOf("?")); var fileObj = null; if (ThisType == ".js") { fileObj = document.createElement("script"); fileObj.src = url; } else if (ThisType == ".css") { fileObj = document.createElement("link"); fileObj.href = url; fileObj.type = "text/css"; fileObj.rel = "stylesheet"; } else if (ThisType == ".less") { fileObj = document.createElement("link"); fileObj.href = url; fileObj.type = "text/css"; fileObj.rel = "stylesheet/less"; } success = success || function() {}; fileObj.onload = fileObj.onreadystatechange = function() { if ( !this.readyState || "loaded" === this.readyState || "complete" === this.readyState ) { success(); classcodes.push(url); } }; document.getElementsByTagName("head")[0].appendChild(fileObj); } else { success(); } } /*获取文件类型,后缀名,小写*/ function GetFileType(url) { if (url != null && url.length > 0) { return url.substr(url.lastIndexOf(".")).toLowerCase(); } return ""; } /*文件是否已加载*/ function FileIsExt(FileArray, _url) { if (FileArray != null && FileArray.length > 0) { var len = FileArray.length; for (var i = 0; i < len; i++) { if (FileArray[i] == _url) { return true; } } } return false; } }; Manage.prototype.loadAudio = function() { //相关:g_tourAudio \ g_playAudio g_bgAudio = new Audio(); g_bgAudio.loop = true; g_bgAudio.autoplay = true; g_bgAudio.id = "bgaudio"; //https://www.cnblogs.com/interdrp/p/4211883.html 部分资料 g_bgAudio.load(); // iOS 9 还需要额外的 load 一下, 否则直接 play 无效 var play = function() { //if(window.tourAudioSta) return; this.switchBgmState(true); document.removeEventListener("touchstart", play); document.removeEventListener("click", play); $("#player")[0].removeEventListener("touchstart", play); }.bind(this); g_bgAudio.oncanplay = () => { this.switchBgmState(true); }; document.removeEventListener("WeixinJSBridgeReady", play); document.addEventListener("WeixinJSBridgeReady",play); document.addEventListener("touchstart", play); //ios需要加个事件才能播放 不能自动播放;如果还有浏览器不行,换成别的交互事件 document.addEventListener("click", play); $("#player")[0].addEventListener("touchstart", play); g_bgAudio.addEventListener("ended", () => { this.switchBgmState(true); }); $("#volume") .find("a") .on("click", () => { if ($("#volume img")[0].src.indexOf("btn_on.png") > -1) { this.switchBgmState(true); } else if ($("#volume img")[0].src.indexOf("btn_off.png") > -1) { this.switchBgmState(false); } }); }; Manage.prototype.switchBgmState = function(state) { if (!g_bgAudio || !g_bgAudio.src) return; var played = function() { console.log("begin play bgm"); g_play = 1; g_playAudio = g_bgAudio; $("#volume a img").attr("src", "./images/Volume btn_off.png"); $("#volume").attr("title", "关闭声音"); g_tourAudio && g_tourAudio.pause(); }; var paused = function() { g_play = 0; g_playAudio == g_bgAudio && (g_playAudio = null); $("#volume a img").attr("src", "./images/Volume btn_on.png"); $("#volume").attr("title", "打开声音"); }; if (state) { g_bgAudio.play(); if (g_bgAudio.paused) { paused(); } else { played(); return true; } } else { g_bgAudio.pause(); paused(); } g_bgAudio.pauseByHot = false; g_bgAudio.pauseByTour = false; }; Manage.prototype.dealURL = function(src, type) { //music: "///super.4dage.com/data/LYW/edit/20200928_151633415.mp3" //"https://super.4dage.com/data/LYW/edit/20200928_165319399.jpg"] if (window.isLocal && settings.localPrefix != void 0) { //本地将线上的前缀替换 var oldPrefixs = [ "https://super.4dage.com/", "http://super.4dage.com/", "///super.4dage.com/", ]; for (let i = 0; i < oldPrefixs.length; i++) { if (src.includes(oldPrefixs[i])) { return src.replace(oldPrefixs[i], settings.localPrefix); break; } } console.error("没有找到合适的本地链接"); return src; } else { //add https:// var prefix = g_Prefix.replace("https://", "").replace("http://", ""); if ( !src.includes("http:/") && !src.includes("https:/") && src.includes(prefix) ) { src = "https://" + src; } return src; } }; //隐藏公司Logo function showLogo() { $("#myCompany").hide(); $("#loaderCoBrandName").hide(); $("#title-logo").hide(); $(".title-container").css("justify-content", "center"); } //czj 添加随机的时间 function randomTime() { return new Date(); } window.loadMange = () => { if (!window.manage) { window.manage = new Manage(); } };