ソースを参照

bug fix: 场景跳转时,有时set_label_pos函数的第二个参数pos值就是“pos”,而非有意义的值,导致标签与热点icon重合。

任一存 2 年 前
コミット
4c68c09dae
1 ファイル変更103 行追加74 行削除
  1. 103 74
      public/showviewer/lib/krpano/tooltip.xml

+ 103 - 74
public/showviewer/lib/krpano/tooltip.xml

@@ -190,37 +190,37 @@
         
                                 <!-- label方位 -->
         if(get(hotspottype) LE 2,
-         copy(hoverstatus,hotspot[get(name)].hoverstatus); 
-         <!-- trace('hovering-label::',get(hoverstatus)); -->
-        <!-- delayedcall(0.1,
-            txtadd(tooltipname, 'tooltip_', get(name)); 
-            set_label_pos(get(tooltipname),get(pos));
-         ); -->
+          copy(hoverstatus,hotspot[get(name)].hoverstatus); 
+          <!-- trace('hovering-label::',get(hoverstatus)); -->
+          <!-- delayedcall(0.1,
+              txtadd(tooltipname, 'tooltip_', get(name)); 
+              set_label_pos(get(tooltipname),get(pos));
+          ); -->
           if(hoverstatus == 0,
             delayedcall(0.5,
-            txtadd(tooltipname, 'tooltip_', get(name)); 
-            set_label_pos(get(tooltipname),get(pos));
+              txtadd(tooltipname, 'tooltip_', get(name)); 
+              set_label_pos(get(tooltipname),get(pos));
             );
-         );
-        if(hoverstatus == 1,
+          );
+          if(hoverstatus == 1,
             set(layer[get(tooltipname)].visible,false);
-         );
+          );
           <!-- 2 hover  -->
-        if(hoverstatus == 2,
+          if(hoverstatus == 2,
             <!-- trace('测试'); -->
-           set(layer[get(tooltipname)].visible,false);
+            set(layer[get(tooltipname)].visible,false);
             delayedcall(0.5,
-             txtadd(tooltipname, 'tooltip_', get(name)); 
-                set_label_pos(get(tooltipname),get(pos));
-                set(layer[get(tooltipname)].visible,false);
+              txtadd(tooltipname, 'tooltip_', get(name)); 
+              set_label_pos(get(tooltipname),get(pos));
+              set(layer[get(tooltipname)].visible,false);
             );
             set(hotspot[get(name)].onhover,txtadd(tooltipname, 'tooltip_', get(name)); set(layer[get(tooltipname)].visible,true););
             set(hotspot[get(name)].onout,
-             txtadd(tooltipname, 'tooltip_', get(name)); 
-             set(layer[get(tooltipname)].visible,false);
+              txtadd(tooltipname, 'tooltip_', get(name)); 
+              set(layer[get(tooltipname)].visible,false);
             );
-         );
-       );
+          );
+        );
 
         <!-- 个性化标签(3) -->
         if(get(hotspottype) == 3,    
@@ -374,62 +374,91 @@
     </action>
 
     <action name='set_label_pos'>
-        <!-- label方位 -->
-       <!-- showlog(); -->
-       set(posName,%1);
-       set(pos,%2);
-       copy(hp,posName);
-       txtreplace(hp,'tooltip_','');
+      <!-- label方位 -->
+      <!-- showlog(); -->
+      set(posName,%1);
+      trace(calc('pos name::'), get(posName));
+      
+      set(pos,%2);
+      trace(calc('pos::'), get(pos));
 
-       copy(hwidth, hotspot[get(hp)].width);
-       copy(hheight, hotspot[get(hp)].height);
-       <!-- trace('hwidth::',get(hwidth)); -->
-       copy(lwidth, layer[get(posName)].width);
-       copy(lheight, layer[get(posName)].height);
-       trace(calc('当前热点动态宽::' + get(hp)+"::"),get(lwidth));
-       trace(calc('当前热点动态高::' + get(hp)+"::"),get(lheight));
+      copy(hp,posName);
+      txtreplace(hp,'tooltip_','');
 
-        if(
-            pos == 'top',
-            add(all,lheight,hheight);
-            div(dpy,all,2); 
-            add(lastPy,dpy,5);
-            <!-- trace('dpy::',dpy); -->
-            mul(lastPy, -1);
-            set(layer[get(posName)].align,center);
-            set(layer[get(posName)].y,get(lastPy));
-            set(layer[get(posName)].x,0);
-        );
-         if(
-            pos == 'bottom',
-            add(all,lheight,hheight);
-            div(dpy,all,2); 
-            add(lastPy,dpy,5);
-            mul(lastPy, 1);
-            set(layer[get(posName)].align,center);
-            set(layer[get(posName)].y,get(lastPy));
-            set(layer[get(posName)].x,0);
-        );
-        if(
-            pos == 'left',
-            add(all,lwidth,hwidth);
-            div(dpx,all,2); 
-            add(lastPx,dpx,10);
-            mul(lastPx, -1);
-            set(layer[get(posName)].align,center);
-            set(layer[get(posName)].x,get(lastPx));
-            set(layer[get(posName)].y,0);
-        );
-        if(
-            pos == 'right',
-            add(all,lwidth,hwidth);
-            div(dpx,all,2); 
-            add(lastPx,dpx,10);
-            mul(lastPx, 1);
-            set(layer[get(posName)].align,center);
-            set(layer[get(posName)].x,get(lastPx));
-            set(layer[get(posName)].y,0);
-        );
+      copy(hwidth, hotspot[get(hp)].width);
+      copy(hheight, hotspot[get(hp)].height);
+      trace('hwidth::',get(hwidth));
+      trace('hheight::',get(hheight));
+
+      copy(lwidth, layer[get(posName)].width);
+      copy(lheight, layer[get(posName)].height);
+      trace(calc('当前热点动态宽::' + get(hp)+"::"),get(lwidth));
+      trace(calc('当前热点动态高::' + get(hp)+"::"),get(lheight));
+
+      trace(calc('当前热点pos::' + get(pos)));
+
+      if(
+        pos == 'pos',
+        trace(calc('pos == pos!'));
+
+        add(all,lheight,hheight);
+        div(dpy,all,2); 
+        add(lastPy,dpy,5);
+        trace(calc('dpy::'),dpy);
+        
+        mul(lastPy, -1);
+        trace(calc('lastPy::'),lastPy);
+
+        set(layer[get(posName)].align,center);
+        set(layer[get(posName)].y,get(lastPy));
+        set(layer[get(posName)].x,0);
+      );
+      if(
+        pos == 'top',
+        trace(calc('pos == top!'));
+
+        add(all,lheight,hheight);
+        div(dpy,all,2); 
+        add(lastPy,dpy,5);
+        trace(calc('dpy::'),dpy);
+        
+        mul(lastPy, -1);
+        trace(calc('lastPy::'),lastPy);
+
+        set(layer[get(posName)].align,center);
+        set(layer[get(posName)].y,get(lastPy));
+        set(layer[get(posName)].x,0);
+      );
+      if(
+        pos == 'bottom',
+        add(all,lheight,hheight);
+        div(dpy,all,2); 
+        add(lastPy,dpy,5);
+        mul(lastPy, 1);
+        set(layer[get(posName)].align,center);
+        set(layer[get(posName)].y,get(lastPy));
+        set(layer[get(posName)].x,0);
+      );
+      if(
+        pos == 'left',
+        add(all,lwidth,hwidth);
+        div(dpx,all,2); 
+        add(lastPx,dpx,10);
+        mul(lastPx, -1);
+        set(layer[get(posName)].align,center);
+        set(layer[get(posName)].x,get(lastPx));
+        set(layer[get(posName)].y,0);
+      );
+      if(
+        pos == 'right',
+        add(all,lwidth,hwidth);
+        div(dpx,all,2); 
+        add(lastPx,dpx,10);
+        mul(lastPx, 1);
+        set(layer[get(posName)].align,center);
+        set(layer[get(posName)].x,get(lastPx));
+        set(layer[get(posName)].y,0);
+      );
     </action>