xzw 4 lat temu
rodzic
commit
506af44436
6 zmienionych plików z 123 dodań i 51 usunięć
  1. 5 10
      js/SpecialScene.js
  2. 26 8
      js/edit.js
  3. 37 15
      js/main_2020_edit.js
  4. 23 17
      js/main_2020_show.js
  5. 31 0
      js/manage.js
  6. 1 1
      js/overlay.js

+ 5 - 10
js/SpecialScene.js

@@ -60,13 +60,8 @@ SpecialScene.prototype.data391 = function(){
 
 var specialScene = new SpecialScene()
 
-
-/* 
-if(window.number == "YHVR"){
-    settings.floorlogoURL = "images/floorlogo.png"
-    $("#gui-loading .loadingLogo .img").append($("<img src = 'images/loadingLogo.png'></img>"))
-    settings.dontExamHot = true
-}
- */
-
-
+ 
+ 
+/* 本地场景替换前缀
+window.isLocal = true 
+settings.localPrefix =  "https://super.4dage.com/" */

+ 26 - 8
js/edit.js

@@ -411,7 +411,7 @@ function getSeft(seft) {
             $(".shotImg.innerBtn").css("background-image", "url(" + rs.data + ")")
             this.data.thumbImg = rs.data;  
           }
-        })
+        }, "thumbImg.jpg")
         
     }
     
@@ -979,7 +979,7 @@ Hotpoint.prototype.saveHot = function () {
             if(currStyle == "user" && currentHotStyleImg.length){
                 currentHotStyleImg.forEach((img)=>{
                     if(img.needSave)
-                        uploadImg(img.base64Src, function(rs){
+                        /* uploadImg(img.base64Src, function(rs){
                             if(rs.code == 0){
                                 img.needSave = false;
                                 img.saveURL = rs.data;
@@ -990,7 +990,21 @@ Hotpoint.prototype.saveHot = function () {
                                alert("样式图上传失败");
                                a.reject(); 
                             }
-                        }) 
+                        })  */
+                        
+                        uploadFile(img.file, 'hot/image', function (rs) {
+                            if (rs.code === 0) {
+                                img.needSave = false;
+                                img.saveURL = rs.data;
+                                if(++doneNum >= currentHotStyleImg.length){
+                                    a.resolve();
+                                } 
+                            }else{
+                               alert("样式图上传失败");
+                               a.reject(); 
+                            }
+                        })
+                        
                     else if(++doneNum >= currentHotStyleImg.length){
                             a.resolve();
                         }  
@@ -1484,7 +1498,7 @@ $(".toolRight .music .itemTitle span").text(`背景音乐 (<${_musicMaxWeight}M)
 
 
 //上传图片
-function uploadImg(urlData, callback) {
+function uploadImg(urlData, callback, fileName) {
   //console.log('urlData',urlData);
 
   var bytes = window.atob(urlData.split(',')[1]);        //去掉url的头,并转换为byte  
@@ -1499,19 +1513,22 @@ function uploadImg(urlData, callback) {
   var blob = new Blob([ab], { type: 'image/jpeg', });
 
 
-  uploadFile(blob, 'hot/images', callback);
+  uploadFile(blob, 'hot/images', callback, fileName);
+  
 }
 
 
 //上传文件
-function uploadFile(file, type, callback) {
+function uploadFile(file, type, callback, fileName) {
   $(".edit-loading").removeClass("hide");
   var formData = new FormData()
   formData.append('name', number)
   formData.append('dir', type)
   formData.append('random', true)
-  formData.append('file', file)
+  //formData.append('file', file) 
+  formData.append("file", file, fileName);
 
+    
   let url = cmp? ('/api/scene/upload/'+number) : ('/manage/scene/upload/'+number)
 
   $.ajax({ 
@@ -1826,7 +1843,8 @@ var inputMedia = function (options, type, e) {
                 }); */
                 var img = new Image();
                 img.src = blobSrc;
-                img.base64Src = evt.target.result;         
+                img.base64Src = evt.target.result;
+                img.file = file; 
                 img.onload = function (e) { 
                     options.photoDone(img)
                     $('.waiting').removeClass('showloading');

+ 37 - 15
js/main_2020_edit.js

@@ -4561,7 +4561,7 @@ function o(a, s, l) {
                     if (r && 0 < r.music.length) {
                          
                         var o = r.music.includes(g_Prefix.slice(-10)) ? r.music :  g_Prefix + r.music;
-                        g_tourAudio.src = o;
+                        g_tourAudio.src = manage.dealURL(o);
                         g_tourAudio.load(),
                         g_tourAudio.crossOrigin = "anonymous",
                         g_tourAudio.oncanplaythrough = function() {
@@ -4645,17 +4645,21 @@ function o(a, s, l) {
 				}
             }
             ,
-            t.prototype.stopTour = function() {
+            t.prototype.stopTour = function(isAutoStop) {//停止导览        isAutoStop 希望仅在飞完结束自动停止时的stopTour不停止tourSound, 这样才能完整播放tourSound.  不过似乎会在倒数第二个片段点击按钮停止导览时也视作自动结束的(执行this.interrupt() )。
                 this.isInterrupted() || this.transitionStage === v.Moving && this.checkAndHandleWalkingtourInterruption(this.nextWarpStyle) || (this.tourIsPlaying && (this.player.zoomEnabled = this.wasZoomEnabled),
                 this.tourIsPlaying = !1,
-                this.bgmReplay(),
+                (!isAutoStop || g_tourAudio && g_tourAudio.paused )&&this.bgmReplay(),//xzw
                 this.interrupt(),
                 this.clearWalkingSectionPaused(),
                 this.resetSpecialTransition(),
-                this.emit("update.controls")),
-                window.tourAudio && window.tourAudio.pause(),
-                g_tourAudio && 0 == g_tourAudio.paused && (g_tourAudio.pause(),
-                g_tourAudio.src = "")
+                this.emit("update.controls")) 
+                
+                
+                if(!isAutoStop && g_tourAudio && g_tourAudio.paused == false )
+                {
+                    g_tourAudio.pause();
+                    g_tourAudio.src = ""
+                }
             }
             ,
             t.prototype.endTourProgress = function() {
@@ -7410,9 +7414,9 @@ function o(a, s, l) {
         t.exports.showMessage = function(e, t, i) {
             var n = 0;
             o.quickstart.enabled && (function(e) {
-                e && (f.addClass("quick-brand"),
+                /* e && (f.addClass("quick-brand"), //quick-brand样式有问题 会遮住屏幕
                 d.before(f),
-                p = $(".quick-brand").toArray()),
+                p = $(".quick-brand").toArray()), */
                 u.addClass("fadeOut"),
                 setTimeout(function() {
                     p.forEach(function(e) {
@@ -13776,9 +13780,22 @@ function o(a, s, l) {
                     
                   
                     
-                    window.MP_PREFETCHED_MODELDATA.backgroundMusic ? (g_bgAudio.src = window.MP_PREFETCHED_MODELDATA.backgroundMusic,
+                    /* window.MP_PREFETCHED_MODELDATA.backgroundMusic ? (g_bgAudio.src = window.MP_PREFETCHED_MODELDATA.backgroundMusic,
                     $("#volume").show()) : "one" === g_version && (g_bgAudio.src = g_Prefix + "/audio/audio" + window.number + "/background.mp3");
+                     */
+                    
+                    if (window.MP_PREFETCHED_MODELDATA.backgroundMusic) {
+                        let src = window.MP_PREFETCHED_MODELDATA.backgroundMusic.substr(0,4)=="http" ? window.MP_PREFETCHED_MODELDATA.backgroundMusic : "//" + window.MP_PREFETCHED_MODELDATA.backgroundMusic;
+                        g_bgAudio.src = manage.dealURL(src) ;
+                        $("#volume").show();
+                    }else if (g_version === "one"){
+                        let src = g_Prefix+"/audio/"+"audio"+window.number + "/background.mp3";
+                        g_bgAudio.src = manage.dealURL(src) ;
+                    }
+                    
+                    //隐藏公司logo
                     window.MP_PREFETCHED_MODELDATA.loadlogo && showLogo();
+                    
                     r("./lib/three75-shim"),
                     r("./lib/array-polyfill"),
                     r("./lib/performance-polyfill"),
@@ -14848,7 +14865,7 @@ function o(a, s, l) {
             this.styleTex = []
             t.styleImg = t.styleImg || [];
             t.styleImg.forEach((src)=>{ 
-                this.styleTex.push({src:src}) 
+                this.styleTex.push({src:manage.dealURL(src)}) 
             })
             this.changeTex()
         }
@@ -16401,6 +16418,10 @@ function o(a, s, l) {
                         var s = d.convertWorkshopModeInt(n.metadata.camera_mode);
                         if (s === d.MESH)
                             continue;
+                        
+                        var src = "one" === g_version ? g_Prefix + r + "?" + randomTime().getTime() :  r + "?" + randomTime().getTime()
+                        src = manage.dealURL(src)
+                        
                         var l = {
                             cameraMode: s,
                             position: n.metadata.camera_position,
@@ -16409,7 +16430,7 @@ function o(a, s, l) {
                             panoId: n.metadata.scan_id,
                             orthoZoom: n.metadata.ortho_zoom,
                             floorVisibility: void 0 !== n.metadata.floor_visibility ? n.metadata.floor_visibility.slice(0) : [],
-                            thumbUrl: "one" === g_version ? g_Prefix + r + "?" + randomTime().getTime() :  r + "?" + randomTime().getTime(),
+                            thumbUrl: src,
                             name: h.filterImageName(o),
                             sid: n.sid
                         }
@@ -22673,7 +22694,7 @@ function o(a, s, l) {
             if (this.started)
                 throw new l("Can't start SceneRenderer, already started");
             this.createContext(e),
-            this.boluoVrInit(),
+            //u.isMobile() && this.boluoVrInit(),
             this.initComposer(),
             this.started = !0,
             (b = b.bind(this))()
@@ -22812,7 +22833,7 @@ function o(a, s, l) {
         }
         ,
         h.prototype.vrLoadingInit = function() {
-            var e = new (e = function() {
+            var e = new (e = function(camera) {
                 var t = this
                   , e = new M.RingGeometry(1.3,1.5,32,32,0,1.2 * Math.PI)
                   , i = new M.MeshBasicMaterial({
@@ -22823,7 +22844,8 @@ function o(a, s, l) {
                 (this.mesh = n).position.z = -2,
                 n.scale.set(.08, .08, .08),
                 n.visible = !1,
-                window.player.camera.add(n),
+                //window.player.camera.add(n),
+                camera.add(n),
                 t.enabled = !1,
                 this.update = function(e) {
                     1 == t.enabled && (n.rotation.z += 15 * e)

+ 23 - 17
js/main_2020_show.js

@@ -4693,7 +4693,7 @@ window.Modernizr = function(n, e, t) {
                         var s =  tM.music.includes(g_Prefix.slice(-10)) ? tM.music :  g_Prefix + tM.music;
                   
                          
-                        g_tourAudio.src = s;     
+                        g_tourAudio.src = manage.dealURL(s);     
                         g_tourAudio.load();
                         g_tourAudio.crossOrigin = "anonymous"
                        
@@ -4751,7 +4751,7 @@ window.Modernizr = function(n, e, t) {
                 this.emit("update.controls"),
                 this.tourIsPlaying)
                     return this.atEndOfTour() && !this.endlessLoop ? (this.tourInProgress = !1,
-                    this.stopTour(),
+                    this.stopTour(true),
                     this.emit(p.TourEnd),
                     void (this.player.mode === c.PANORAMA && this.model.fadePanoMarkers(a.panorama.markerOpacity))) : void this.awaitCompletion(function() {
                         this.transitionStage = y.Interlude,
@@ -4786,16 +4786,16 @@ window.Modernizr = function(n, e, t) {
 				}
 			}
 			,
-            n.prototype.stopTour = function() {
+            n.prototype.stopTour = function(isAutoStop) {//停止导览        isAutoStop 希望仅在飞完结束自动停止时的stopTour不停止tourSound, 这样才能完整播放tourSound.  不过似乎会在倒数第二个片段点击按钮停止导览时也视作自动结束的(执行this.interrupt() )。
                 this.isInterrupted() || this.transitionStage === y.Moving && this.checkAndHandleWalkingtourInterruption(this.nextWarpStyle) || (this.tourIsPlaying && (this.player.zoomEnabled = this.wasZoomEnabled),
                 this.tourIsPlaying = !1,
-				this.bgmReplay(),//xzw
+				(!isAutoStop || g_tourAudio && g_tourAudio.paused )&&this.bgmReplay(),//xzw
                 this.interrupt(),
                 this.clearWalkingSectionPaused(),
                 this.resetSpecialTransition(),
                 this.emit("update.controls"))
                 //window.tourAudio && window.tourAudio.pause();
-                if( g_tourAudio && g_tourAudio.paused == false )
+                if(!isAutoStop && g_tourAudio && g_tourAudio.paused == false )
                 {
                     g_tourAudio.pause();
                     g_tourAudio.src = ""
@@ -7695,9 +7695,9 @@ window.Modernizr = function(n, e, t) {
             s(n, r)
         }
         function a(e) {
-            return e && (y.addClass("quick-brand"),
-            v.before(y),
-            A = $(".quick-brand").toArray()),
+            return /* e && (y.addClass("quick-brand"),    //quick-brand样式有问题 会遮住屏幕
+            v.before(y), 
+            A = $(".quick-brand").toArray()),*/
             m.addClass("fadeOut"),
             setTimeout(function() {
                 A.forEach(function(e) {
@@ -14622,10 +14622,12 @@ window.Modernizr = function(n, e, t) {
                 }
                 //czj 判断someData 有没有backgroundMusic 添加音乐
                 if (window.MP_PREFETCHED_MODELDATA.backgroundMusic) {
-                    g_bgAudio.src = window.MP_PREFETCHED_MODELDATA.backgroundMusic.substr(0,4)=="http" ? window.MP_PREFETCHED_MODELDATA.backgroundMusic : "//" + window.MP_PREFETCHED_MODELDATA.backgroundMusic;
+                    let src = window.MP_PREFETCHED_MODELDATA.backgroundMusic.substr(0,4)=="http" ? window.MP_PREFETCHED_MODELDATA.backgroundMusic : "//" + window.MP_PREFETCHED_MODELDATA.backgroundMusic;
+                    g_bgAudio.src = manage.dealURL(src) ;
                     $("#volume").show();
                 }else if (g_version === "one"){
-                    g_bgAudio.src = g_Prefix+"/audio/"+"audio"+window.number + "/background.mp3";
+                    let src = g_Prefix+"/audio/"+"audio"+window.number + "/background.mp3";
+                    g_bgAudio.src = manage.dealURL(src) ;
                 }
 
                 //隐藏公司logo
@@ -15424,8 +15426,8 @@ window.Modernizr = function(n, e, t) {
         hot.prototype.initStyleImg = function(t){
             this.styleTex = []
             t.styleImg = t.styleImg || [];
-            t.styleImg.forEach((src)=>{ 
-                this.styleTex.push({src:src}) 
+            t.styleImg.forEach((src)=>{  
+                this.styleTex.push({src:manage.dealURL(src)}) 
             })
             this.changeTex()
         }
@@ -17114,6 +17116,10 @@ window.Modernizr = function(n, e, t) {
                         if (u === a.MESH)
                             continue;
                        
+                       
+                        var src = g_version === "one" ? g_Prefix + l + "?"+ randomTime().getTime() : (l.substr(0,4)=="http" ? l + "?"+ randomTime().getTime() : '//' + l + "?"+ randomTime().getTime())
+                        src = manage.dealURL(src)
+                       
                         var d = {
                             cameraMode: u,
                             position: o.metadata.camera_position,
@@ -17122,7 +17128,7 @@ window.Modernizr = function(n, e, t) {
                             panoId: o.metadata.scan_id,
                             orthoZoom: o.metadata.ortho_zoom,
                             floorVisibility: void 0 !== o.metadata.floor_visibility ? o.metadata.floor_visibility.slice(0) : [],
-                            thumbUrl: g_version === "one" ? g_Prefix + l + "?"+ randomTime().getTime() : (l.substr(0,4)=="http" ? l + "?"+ randomTime().getTime() : '//' + l + "?"+ randomTime().getTime()),
+                            thumbUrl: src,
                             name: n.filterImageName(c),
 							sid: o.sid //xzw add   g_tourAudio要用,
                         }
@@ -23624,7 +23630,7 @@ window.Modernizr = function(n, e, t) {
                 throw new c("Can't start SceneRenderer, already started");
             this.createContext(e),
             /***************************************************VR fyz改 from徐世廷**********************************************************************/
-			this.boluoVrInit(),
+			m.isMobile() && this.boluoVrInit(),
 			/*******************************************************************************************************************************/
             this.initComposer(),
             this.started = !0,
@@ -23862,7 +23868,7 @@ window.Modernizr = function(n, e, t) {
         }
         ,
         n.prototype.vrLoadingInit = function() {
-            var a = function() {
+            var a = function(camera) {
                 var a = this
                   , b = new r.RingGeometry(1.3,1.5,32,32,0,1.2 * Math.PI)
                   , c = new r.MeshBasicMaterial({
@@ -23874,8 +23880,8 @@ window.Modernizr = function(n, e, t) {
                 d.position.z = -2,
                 d.scale.set(.08, .08, .08),
                 d.visible = !1,
-                // camera.add(d),
-                window.player.camera.add(d),
+                camera.add(d),
+                //window.player.camera.add(d),
                 a.enabled = !1,
                 this.update = function(b) {
                     1 == a.enabled && (d.rotation.z += 15 * b)

+ 31 - 0
js/manage.js

@@ -313,6 +313,34 @@ Manage.prototype.weixinShare = function() {
 
     
 }
+
+
+
+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{
+        return src
+    }
+    
+    
+}
+
+
+
+
 var manage = new Manage();
 
 //公用的函数
@@ -383,6 +411,9 @@ function hotMatcher(data){
     return data;
 }
 
+
+
+
 //兼容一代的場景
 //請求地址統一管理
 var g_onePregix = "https://bigscene.4dage.com/" //对应一代  http://www.4dmodel.com/SuperPanoramic/index.html?m=55

+ 1 - 1
js/overlay.js

@@ -51,7 +51,7 @@ var initOverlay = function(THREE){
                 video.setAttribute("crossOrigin", 'Anonymous')//要在src设置好前解决跨域
                 $(video).on('contextmenu', function () { return false; });//禁止右键点击出
                  
-                video.src = info.file;
+                video.src = manage.dealURL(info.file)  ;
                 info.media = video;
                 info.type = "video"