123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 |
- //管理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", "./static/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", "./static/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();
- }
- };
|