xzw 3 gadi atpakaļ
vecāks
revīzija
f966fb4d52
3 mainītis faili ar 155 papildinājumiem un 90 dzēšanām
  1. 95 64
      SuperTwo762/js/main_2020_show.js
  2. 50 16
      SuperTwo762/js/manage.js
  3. 10 10
      SuperTwo791/js/main_2020_show.js

+ 95 - 64
SuperTwo762/js/main_2020_show.js

@@ -2,6 +2,42 @@
 另外 	所有"matter"字样已被我删除				原因:删除matterport信息
   */
   
+  
+  
+/* 
+ watch:
+
+
+ g_bgAudio.paused
+ g_tourAudio.paused
+ g_tourAudio.shouldPlay
+ manage.musicShouldPlay
+  */
+
+var musicList = {
+    "0102cp":'3458d3c7ca764ecaa13c88aaa8e0a1a8, 1107bf848a6146059249cc109c6d1472, 8c0e5bcc4a69470aa5f189edde162973, 2d00ef76d93f4a578b356c593da889b0, 61afb8aaf45046be865b1b30d0357754, 0a73cf23993d4f4cbb48337708f8c7b7, 9a32f7d9b29f427182b453b1a8009efc'.split(','),
+    "04CP":'48930ada7d02438a846f6f6cf5a8693f, d3e00453736549e392ca91e9bd31ee72, b99ae9d8d19144f7866d49ed863a4b84, 14f349b0dd3d4646b2bd98c2ebfeb643'.split(','),
+    "03cp":'d9b104d7df9244fca5ad5af4d5fca8f7, 2860b361da9246949ab6f57cbb8ce82d, 491d8cce5dfa441db5a52eb248bf4a63'.split(','),
+    "19CP":'73a354895dc74c30beeb02a8d8bfe328, 256aedca55d6417fb696156279424d42, 10210bebd78b4d33ad05e0bef22cf0a3'.split(','),
+    "2021cp":'10793e907fa7493c83f73fdcfd7df706, 2e2da10199634b5188c5469c0f52f9f6, 449196f2aa014f9db6a6cda675df7b70'.split(','),
+    "22cp":'cf2d9fa92e8443aabbcc1a01736a052e, 08967bbdacec4ecf8ff44b219408ac9a, 8d20c6dd62c04564a172430705ba0295, a8a7d94bb9b84e8cb45556bbd548961d'.split(','),
+    "23cp":'90197f7926e2466498135ef053147aaa, 6138d5511fe546e396a51408dfc9f6c5'.split(','),
+    '24cp':'8d216c8512264564bcde41c544fdfc69,f8769828fe9f4dda8449cd5d9506eeb4,12142ab7fbb74122ba0df52eaa5a5363'.split(','),
+    "0506CP":'6cee9744a41942f384ca0a9130f65ae8, a1f9e4436ea24f99a360ac327979e555,    fb3b381371d04864ab99dfd30a08fe89, 0921140bde3f428180b2d6b603775f51'.split(','),
+    "07cp":'8902a763387040b2ad15a6325508cfca, 5adf5343a38340de998a0210cc97c00f'.split(','),
+    "08CP":'f9e6d48c697f455f9b294523a5222624, 4f912bc6dc2848ce924064d025635b81, 518612bb1c884d9bb7aff8d431904f8d'.split(','),
+    "09cp":'cb5887f7f3da43bf9ce383fbe4bae99b, d236fb56ac954bb29b3a6d0bdbe85588'.split(','),
+    "10cp":'dca81dee239e4f7e9d8b69c3af629f00, 69ef058f04474e3fbfd4cd22bb440934, 42fe939bbf7c42058f9c32356a08f319'.split(','),
+    "11cp":'fd62c35e2572460b88fb934e56888a2d, 4836763c382a45dcba1210f616e9e3be'.split(','),
+    "1213CP":'06fcab3ccc204198ba04bc226d6a049a, c72fe82506234db6bd75919ac0e61ec5, 884d594255f54a88b36f078ec2842669, 921eaf2a769c4f069e9588b0fa99f170, 02abef88316e482b9d4c4f3cb2a34c64'.split(','),
+    "15cp":'6e4c35329ba1470c8ebdf2ad3f1e92cd'.split(','),
+    "14cp":'0b168caa5f1848e1b614e97b3cc22923, a05cc1124331484c9d852f4918a3248d'.split(','),
+    "16cp":'506d2f805551425d938f488746730060, 21fbd2534bc840ebac3a5fac50e54cf5'.split(','),
+    "17cp":'d756e9288311440599eab62bde2e017e'.split(','),
+    "18cp":'11bb3c4c831a4151b8c7086f39086878'.split(','),
+      
+}
+ 
 window.common = null;  
 window.MathLight = null;
 window.math = null
@@ -23,58 +59,29 @@ g_tourAudio.crossOrigin = "anonymous"
 g_tourAudio.addEventListener("ended", function() {
     var e = document.createEvent("MouseEvent");
     e.initEvent("tourAudioEnded", !0, !0),
-    window.dispatchEvent(e)
+    window.dispatchEvent(e) 
+    g_tourAudio.shouldPlay = false
+    manage.switchBgmState(true); 
 }) 
 
 g_tourAudio.oncanplaythrough = function() {
     if(g_currentHot)return g_tourAudio.pause()
-    if(g_tourAudio.shouldPlay){
+    if(manage.musicShouldPlay && g_tourAudio.shouldPlay  /* manage.ifTourCanPlay() */){
         g_tourAudio.play(); 
         g_playAudio = g_tourAudio; 
-        
+         
         if(g_bgAudio && !g_bgAudio.paused){
             manage.switchBgmState(false); 
             g_bgAudio.pauseByTour = true
         }
     }    
-}
-
-
-
-
+} 
+ 
 
-var musicList = {
-    "0102cp":'3458d3c7ca764ecaa13c88aaa8e0a1a8, 1107bf848a6146059249cc109c6d1472, 8c0e5bcc4a69470aa5f189edde162973, 2d00ef76d93f4a578b356c593da889b0, 61afb8aaf45046be865b1b30d0357754, 0a73cf23993d4f4cbb48337708f8c7b7, 9a32f7d9b29f427182b453b1a8009efc'.split(','),
-    "04CP":'48930ada7d02438a846f6f6cf5a8693f, d3e00453736549e392ca91e9bd31ee72, b99ae9d8d19144f7866d49ed863a4b84, 14f349b0dd3d4646b2bd98c2ebfeb643'.split(','),
-    "03cp":'d9b104d7df9244fca5ad5af4d5fca8f7, 2860b361da9246949ab6f57cbb8ce82d, 491d8cce5dfa441db5a52eb248bf4a63'.split(','),
-    "19CP":'73a354895dc74c30beeb02a8d8bfe328, 256aedca55d6417fb696156279424d42, 10210bebd78b4d33ad05e0bef22cf0a3'.split(','),
-    "2021cp":'10793e907fa7493c83f73fdcfd7df706, 2e2da10199634b5188c5469c0f52f9f6, 449196f2aa014f9db6a6cda675df7b70'.split(','),
-    "22cp":'cf2d9fa92e8443aabbcc1a01736a052e, 08967bbdacec4ecf8ff44b219408ac9a, 8d20c6dd62c04564a172430705ba0295, a8a7d94bb9b84e8cb45556bbd548961d'.split(','),
-    "23cp":'90197f7926e2466498135ef053147aaa, 6138d5511fe546e396a51408dfc9f6c5'.split(','),
-    '24cp':'8d216c8512264564bcde41c544fdfc69,f8769828fe9f4dda8449cd5d9506eeb4,12142ab7fbb74122ba0df52eaa5a5363'.split(','),
-    "0506CP":'6cee9744a41942f384ca0a9130f65ae8, a1f9e4436ea24f99a360ac327979e555,    fb3b381371d04864ab99dfd30a08fe89, 0921140bde3f428180b2d6b603775f51'.split(','),
-    "07cp":'8902a763387040b2ad15a6325508cfca, 5adf5343a38340de998a0210cc97c00f'.split(','),
-    "08CP":'f9e6d48c697f455f9b294523a5222624, 4f912bc6dc2848ce924064d025635b81, 518612bb1c884d9bb7aff8d431904f8d'.split(','),
-    "09cp":'cb5887f7f3da43bf9ce383fbe4bae99b, d236fb56ac954bb29b3a6d0bdbe85588'.split(','),
-    "10cp":'dca81dee239e4f7e9d8b69c3af629f00, 69ef058f04474e3fbfd4cd22bb440934, 42fe939bbf7c42058f9c32356a08f319'.split(','),
-    "11cp":'fd62c35e2572460b88fb934e56888a2d, 4836763c382a45dcba1210f616e9e3be'.split(','),
-    "1213CP":'06fcab3ccc204198ba04bc226d6a049a, c72fe82506234db6bd75919ac0e61ec5, 884d594255f54a88b36f078ec2842669, 921eaf2a769c4f069e9588b0fa99f170, 02abef88316e482b9d4c4f3cb2a34c64'.split(','),
-    "15cp":'6e4c35329ba1470c8ebdf2ad3f1e92cd'.split(','),
-    "14cp":'0b168caa5f1848e1b614e97b3cc22923, a05cc1124331484c9d852f4918a3248d'.split(','),
-    "16cp":'506d2f805551425d938f488746730060, 21fbd2534bc840ebac3a5fac50e54cf5'.split(','),
-    "17cp":'d756e9288311440599eab62bde2e017e'.split(','),
-    "18cp":'11bb3c4c831a4151b8c7086f39086878'.split(','),
-     
-    
-    
-    
-}
 
 
-var playMusic = function(pano){//根据漫游点切换bgm
-    //var describe = player.director.describe();
-    //manage.bgmShouldPlay
-    var play = !( !manage.bgmShouldPlay || g_tourAudio.shouldPlay  || g_currentHot ) 
+var playMusic = function(pano){//根据漫游点切换bgm 
+    var play = !( !manage.musicShouldPlay ||  g_tourAudio.shouldPlay  || g_currentHot ) 
     var shouldplayMusic
     for(let i in musicList){
         if(musicList[i].find(e=>e.includes(pano.id))){
@@ -84,7 +91,7 @@ var playMusic = function(pano){//根据漫游点切换bgm
     }
     if(shouldplayMusic){
         if(!g_bgAudio.src.includes(shouldplayMusic)){
-            g_bgAudio.src = isMobile?"""music/"+shouldplayMusic+'.mp3' 
+            g_bgAudio.src = "music/"+shouldplayMusic+'.mp3' 
         } 
         manage.switchBgmState(play)
     }else{
@@ -5307,24 +5314,36 @@ window.Modernizr = function(n, e, t) {
                 }
             }
             ,
-            n.prototype.goToDestination = function(e, t, i, n) {
-              //音频 
-                //if(this.destinationItem[1] == 0){//如果是每个folder的起始
-                var musicInfo = this.model.heroLocations[this.destinationItem[0]].musicInfo
+            
+            
+            
+            n.prototype.getAudio = function(){
+                let a = this.destinationItem && this.destinationItem[0];
+                if(a!=void 0) a = this.model.heroLocations[a] && this.model.heroLocations[a].musicInfo
+                if(a!=void 0) return a.music
+                 
                 
-                if(musicInfo && musicInfo.music){ 
-                    var o = musicInfo.music.includes(g_Prefix.slice(-10)) ? musicInfo.music :  g_Prefix + musicInfo.music;
+                
+            }
+            
+            
+            n.prototype.playAudio = function(){
+                if(!manage.musicShouldPlay)return
+                var music = this.getAudio();
+                if(music){ 
+                    var o = music.includes(g_Prefix.slice(-10)) ? music :  g_Prefix + music;
                     if(isMobile)o = o.replace('//data/','')//add
                     let audioSrc1 = g_tourAudio.src.split('/').pop();
                     let audioSrc2 = o.split('/').pop();
                
                     if(audioSrc1 == audioSrc2){//应该是继续播放该folder 
                         if(this.destinationItem[1] == 0){//从头开始播放 因为可能暂停后然后再点该缩略图播
-                            g_tourAudio.currentTime = 0;  g_tourAudio.play();
+                            g_tourAudio.currentTime = 0; 
+                            g_tourAudio.shouldPlay = true
                         }else if(g_tourAudio.paused && g_tourAudio.currentTime < g_tourAudio.duration){//未播完
                             g_tourAudio.play(); 
-                        } 
-                        g_tourAudio.shouldPlay = true
+                            g_tourAudio.shouldPlay = true
+                        }
                         
                     }else{//很可能是该folder的起始
                         g_tourAudio.src = manage.dealURL(o);
@@ -5335,7 +5354,19 @@ window.Modernizr = function(n, e, t) {
                         manage.switchBgmState(false); 
                         g_bgAudio.pauseByTour = true
                     }
+                    return true
                 }
+            }
+            
+            
+            
+            
+            
+            n.prototype.goToDestination = function(e, t, i, n) {
+              //音频 
+                //if(this.destinationItem[1] == 0){//如果是每个folder的起始
+                
+                this.playAudio()
                 //}
                 if (this.onTheBus = !0,
                 this.emit("update.controls"),
@@ -9443,11 +9474,11 @@ window.Modernizr = function(n, e, t) {
             P.forEach(function(e) {
                 b.addEventListener(e, u.bind(this, !1), !0),
                 w.addEventListener(e, u.bind(this, !0), !0),
-                E.addEventListener(e, o, !0),
-                S.forEach(function(t) {
+                E.addEventListener(e, o, !0)
+                /* S.forEach(function(t) {//会触发导览停止  
                     t.addEventListener(e, a, !0)
                 }),
-                $("#drawer img").on(e, a)
+                $("#drawer img").on(e, a) */
             }),
             document.addEventListener("keydown", u.bind(this, !1), !0),
             C.on(v.TourStart, function() {
@@ -9502,16 +9533,16 @@ window.Modernizr = function(n, e, t) {
                 M.addClass(e)
             } */
         }
-        function u(e, t) {
+        function u(e, t) {//导览触发停止
             if (t) {
                 var i = "keydown" === t.type
-                  , n = t.which === f.SPACE || C.tourIsPlaying;
+                  , n = t.which === f.SPACE ||  C.tourIsPlaying ;
                   
                 i && n || e || (O = !0),
                 C.atEndOfTour() && d(),
                 !C.tourIsPlaying && C.tourInProgress && (_.removeClass("fadeIn"),
                 d(),
-                t.which !== f.SPACE && a()),
+                  t.which !== f.SPACE  && t.currentTarget == player.domElement  && a()),//add currentTarget...
                 i && n && s()
             }
         }
@@ -18613,22 +18644,22 @@ window.Modernizr = function(n, e, t) {
                                 var data = t.hots[sid] 
                                 this.hots[sid] = new Hot(sid, data ,this);
                                 data.infoAttribute || (data.infoAttribute = {})
-                                
-                                data.infoAttribute.images = data.infoAttribute.images.map(e=>changeURL(e))
-                                data.infoAttribute.styleImg = data.infoAttribute.styleImg.map(e=>changeURL(e))
-                                data.infoAttribute.video = data.infoAttribute.video.map(e=> {return {url:changeURL(e.url)}})
-                                 
+                                if(isMobile){
+                                    data.infoAttribute.images = data.infoAttribute.images.map(e=>changeURL(e))
+                                    data.infoAttribute.styleImg = data.infoAttribute.styleImg.map(e=>changeURL(e))
+                                    data.infoAttribute.video = data.infoAttribute.video.map(e=> {return {url:changeURL(e.url)}})
+                                }
                                 this.hots[sid].initStyleImg(data.infoAttribute);
                                 window.hotData[sid] = data;
                             }) 
                         } 
                         this.createHotItem(window.hotData, this.hots);
                         
-                        
-                       g_data2.overlays.forEach(e=>{
-                            e.file = changeURL(e.file)
-                        })
-                        
+                        if(isMobile){
+                            g_data2.overlays.forEach(e=>{
+                                e.file = changeURL(e.file)
+                            })
+                        }
                         
                         
                         g_index = w.valueFromHash("m");

+ 50 - 16
SuperTwo762/js/manage.js

@@ -3,7 +3,10 @@ var Manage = function(){
     this.weixinURL = "https://res.wx.qq.com/open/js/jweixin-1.2.0.js",
     this.time = "?"+new Date().getTime();
     this.loadAudio();
-    // this.loadWeixin();
+    //this.musicShouldPlay = true //一开始默认打开
+    this.switchMusicState(true)//一开始默认打开
+    
+ 
 }
 //动态加载js文件
 Manage.prototype.LoadJs = function(_files, succes){
@@ -105,6 +108,10 @@ Manage.prototype.loadWeixin = function() {
 
 }
 
+
+ 
+
+
 Manage.prototype.loadAudio = function() { //相关:g_tourAudio \  g_playAudio
     g_bgAudio = new Audio;
     //g_bgAudio.loop = true;
@@ -113,13 +120,13 @@ Manage.prototype.loadAudio = function() { //相关:g_tourAudio \  g_playAudio
     
     //https://www.cnblogs.com/interdrp/p/4211883.html   部分资料
     g_bgAudio.load();	// iOS 9   还需要额外的 load 一下, 否则直接 play 无效
-    this.bgmShouldPlay = true //一开始默认打开
+    
     
     
     
     var play = function(){
         //if(window.tourAudioSta) return;
-        this.bgmShouldPlay && this.switchBgmState(true)           
+        this.musicShouldPlay && !g_tourAudio.shouldPlay && this.switchBgmState(true)           
          
         document.removeEventListener("touchstart",play);
         document.removeEventListener("click",play);
@@ -127,10 +134,10 @@ Manage.prototype.loadAudio = function() { //相关:g_tourAudio \  g_playAudio
     }.bind(this);
     
     g_bgAudio.oncanplay = ()=>{ 
-        this.bgmShouldPlay && this.switchBgmState(true)
+        this.musicShouldPlay && !g_tourAudio.shouldPlay && this.switchBgmState(true)           
     }
     document.addEventListener("WeixinJSBridgeReady", ()=> {
-        this.bgmShouldPlay && this.switchBgmState(true)
+        this.musicShouldPlay && !g_tourAudio.shouldPlay && this.switchBgmState(true)           
     }, false);
     
     document.addEventListener("touchstart", play);//ios需要加个事件才能播放 不能自动播放;如果还有浏览器不行,换成别的交互事件
@@ -139,7 +146,7 @@ Manage.prototype.loadAudio = function() { //相关:g_tourAudio \  g_playAudio
     g_bgAudio.addEventListener('ended', ()=>{
         //间隔5s
         setTimeout(()=>{
-            this.bgmShouldPlay && this.switchBgmState(true)
+            this.musicShouldPlay && !g_tourAudio.shouldPlay && this.switchBgmState(true)           
         },5000)
         
     }); 
@@ -150,35 +157,62 @@ Manage.prototype.loadAudio = function() { //相关:g_tourAudio \  g_playAudio
          
         if($("#volume img")[0].src.indexOf("btn_on.png")>-1)
         { 
-            this.switchBgmState(true); 
+            this.switchMusicState(true); 
         }
         else if($("#volume img")[0].src.indexOf("btn_off.png")>-1)
         {
-            this.switchBgmState(false);    
+            this.switchMusicState(false);    
         }
     }) 
 
     
     
-}   
-Manage.prototype.switchBgmState = function(state){
+}  
+
+Manage.prototype.ifTourCanPlay = function(){//只有导览在播放时才能继续播放导览音频,如果是点击导览片段飞过去,一旦停止就不会再播
+    return player.director && player.director.tourIsPlaying && player.director.getAudio()
+}
+
+
+Manage.prototype.switchMusicState = function(state){   //按钮按钮掌管全局音频,导览优先,没有了才放bgm
+    this.musicShouldPlay = state  
+    if(state){
+        if(! (this.ifTourCanPlay() && player.director.playAudio())){ 
+            this.switchBgmState(true) 
+        }else{
+            //this.currentPlay = 'tour'
+        }
+        $("#volume a img").attr("src", "./images/Volume btn_off.png")
+        $("#volume").attr("title", "关闭声音");
+    }else{
+        g_tourAudio.pause()
+        this.switchBgmState(false) 
+        $("#volume a img").attr("src", "./images/Volume btn_on.png")
+        $("#volume").attr("title", "打开声音");
+    }
+    
+}
+
+
+
+
+Manage.prototype.switchBgmState = function(state){ 
+    if(!this.musicShouldPlay)return
     if(!g_bgAudio || !g_bgAudio.src) return;
-    this.bgmShouldPlay = state
+    //this.currentPlay = 'bgm'
     
     var played = function(){ 
         console.log('begin play bgm '+ g_bgAudio.src);
         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()
         //SoundOnVideo && switchSoundBtn(SoundOnVideo)
     }
     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 ){ 
@@ -193,7 +227,7 @@ Manage.prototype.switchBgmState = function(state){
         g_bgAudio.pause();
         paused()
     } 
-    
+     
     
     g_bgAudio.pauseByHot = false
     g_bgAudio.pauseByTour = false

+ 10 - 10
SuperTwo791/js/main_2020_show.js

@@ -18028,22 +18028,22 @@ window.Modernizr = function(n, e, t) {
                                 var data = t.hots[sid] 
                                 this.hots[sid] = new Hot(sid, data ,this);
                                 data.infoAttribute || (data.infoAttribute = {})
-                                
-                                data.infoAttribute.images = data.infoAttribute.images.map(e=>changeURL(e))
-                                data.infoAttribute.styleImg = data.infoAttribute.styleImg.map(e=>changeURL(e))
-                                data.infoAttribute.video = data.infoAttribute.video.map(e=> {return {url:changeURL(e.url)}})
-                                 
+                                if(isMobile){
+                                    data.infoAttribute.images = data.infoAttribute.images.map(e=>changeURL(e))
+                                    data.infoAttribute.styleImg = data.infoAttribute.styleImg.map(e=>changeURL(e))
+                                    data.infoAttribute.video = data.infoAttribute.video.map(e=> {return {url:changeURL(e.url)}})
+                                }    
                                 this.hots[sid].initStyleImg(data.infoAttribute);
                                 window.hotData[sid] = data;
                             })  
                         } 
                         this.createHotItem(window.hotData, this.hots);
                         
-                        
-                       g_data2.overlays.forEach(e=>{
-                            e.file = changeURL(e.file)
-                        }) 
-                        
+                        if(isMobile){
+                            g_data2.overlays.forEach(e=>{
+                                e.file = changeURL(e.file)
+                            }) 
+                        }
                         
                         
                         g_index = w.valueFromHash("m");