Parcourir la source

解放广州-切换一个点位时,左右视频会重头播放。 从该区域切换到非该区域点位的过程中,视频显示在墙上

xzw il y a 4 ans
Parent
commit
853d13fd38
2 fichiers modifiés avec 37 ajouts et 15 suppressions
  1. 17 10
      web/public/static/js/main_2020_show.js
  2. 20 5
      web/public/static/js/overlay.js

+ 17 - 10
web/public/static/js/main_2020_show.js

@@ -16185,8 +16185,10 @@ window.Modernizr = function(n, e, t) {
             }
             this.quaternion || (this.quaternion = new THREE.Quaternion().setFromEuler(this.rotation)) 
             this.isSprite = d.isSprite
-            this.noAction = d.noAction
+            this.actionType = (d.noAction ? 'noAction' : d.actionType) || "common"
             this.linkType = d.linkType || "common"
+           
+            
             
             this.link = d.link;
 			this.model = model;
@@ -16348,7 +16350,7 @@ window.Modernizr = function(n, e, t) {
 		hot.prototype.examine = function(e, options) { 
             options = options || {}
         
-            if(!player.currentPano)return;
+            if(this.actionType == 'noAction' || !player.currentPano)return;
 			var hotPop = document.getElementById('popup');
             //获取那个热点的链接 
 			if(this.link){
@@ -16383,7 +16385,7 @@ window.Modernizr = function(n, e, t) {
 			}.bind(this);
             
             
-            if(settings.dontExamHot){
+            if(settings.dontExamHot || this.actionType == 'dontExam'){
                 o();
                 return;
             }
@@ -18389,10 +18391,14 @@ window.Modernizr = function(n, e, t) {
                 c = player.overlayGroup.children.find(e=>e.sid == '1626743604266') 
                 d = player.overlayGroup.children.find(e=>e.sid == '1626743691935') 
                 d.plane.material = c.plane.material;//同步视频
-                var main = player.overlayGroup.children.find(e=>e.sid == "1626743467424")
+                var main = player.overlayGroup.children.find(e=>e.sid == "1626743467424") 
+                
                 main.forceNoBlock = true
                 main.unvisiblePanos = ["bfacbd2e303c45baa16fdc961e0f6f67","4f2155cb4a7f43e980e9218974c17882",]
                 
+                c.playAccordingTo = main
+                d.playAccordingTo = main
+                
                 //main.plane.material.depthTest = false                
                 c.plane.material.map.image.loop = false 
                 main.plane.material.map.image.loop = false 
@@ -23310,7 +23316,7 @@ window.Modernizr = function(n, e, t) {
             ,
 			n.prototype.checkHotClick = function() { 
 				if(this.intersectHot){
-                    this.intersectHot.noAction || this.intersectHot.examine(this) 
+                    this.intersectHot.examine(this) 
 					
 					
 					
@@ -23433,7 +23439,7 @@ window.Modernizr = function(n, e, t) {
 				if(o.object.type == "hotSprite"){ //add
 					this.intersectHot =  o.object.belongHot; 
                     this.intersectHot.showTitle() 
-					this.intersectHot.noAction || $("#player").css("cursor","pointer");
+					this.intersectHot.actionType == 'noAction' || $("#player").css("cursor","pointer");
 					return;
 				}
                 
@@ -24322,11 +24328,12 @@ window.Modernizr = function(n, e, t) {
                     
                     if(this.mode == u.PANORAMA){ 
                         Overlay.updateVisibles([this.currentPano])
+                        this.overlayGroup.children.find(e=>e.forceNoBlock).plane.material.depthTest = false
                     }else{
                         Overlay.updateVisibles(true)
                     }
                     
-                    this.overlayGroup.children.find(e=>e.forceNoBlock).plane.material.depthTest = false
+                    
                     
                     
                     
@@ -31172,11 +31179,11 @@ window.Modernizr = function(n, e, t) {
                 var urlFirstView = c.valueFromHash('firstView');
                 if(urlFirstView){
                     try{  
-                        urlFirstView = replaceAll(urlFirstView, "pano", '"pano"')  
-                        urlFirstView = replaceAll(urlFirstView, "qua:", '"qua":[') 
+                        urlFirstView = replaceAll(urlFirstView, "pano:", '"pano":"')  
+                        urlFirstView = replaceAll(urlFirstView, ",qua:", '","qua":[') 
                         urlFirstView = "{"+urlFirstView+"]}"
                         let info = JSON.parse(urlFirstView);   
-                        i.pano = t.list[info.pano] //panos.get(info.pano)
+                        i.pano = t.index[info.pano] //panos.get(info.pano)
                         if(!i.pano){
                             urlFirstView = false
                             console.error('检测到firstView但是 找不到该pano')

+ 20 - 5
web/public/static/js/overlay.js

@@ -261,21 +261,36 @@ var initOverlay = function(THREE) {
     
     
     Overlay.prototype.updateVisibles = function(panos) {
-        var v = !!panos.find(pano=>this.visiblePanos.includes(pano))
+        
         
         /* if(this == window.leftBtn || this == window.rightBtn){ 
             this.visible = v && this.visible_;
             return;
         }else{ */
-            this.visible = v
+            
         //}
-        if(this.forceNoBlock && panos.find(pano=>this.unvisiblePanos.includes(pano.id))  ){
+        /* if(this.forceNoBlock && panos.find(pano=>this.unvisiblePanos.includes(pano.id))  ){
             this.visible = false
+        } */
+        if(this.forceNoBlock){
+            var v = !panos.find(pano=>!this.visiblePanos.includes(pano))
+            v && (v = !panos.find(pano=>this.unvisiblePanos.includes(pano.id))  ) 
+            
+        }else{
+            var v = !!panos.find(pano=>this.visiblePanos.includes(pano))
         }
         
-       
+        this.visible = v
+        
         if(this.overlayType == 'video'){
-            this.visible ? this.videoControl("play") : this.videoControl('stop')
+            if(this.playAccordingTo){//播放随其他overlay
+                setTimeout(()=>{
+                    this.playAccordingTo.visible ? this.videoControl("play") : this.videoControl('stop')
+                },100)
+            }else{
+                this.visible ? this.videoControl("play") : this.videoControl('stop')
+            }
+            
         }