gemercheung 2 سال پیش
والد
کامیت
d4db2eb3e7
1فایلهای تغییر یافته به همراه66 افزوده شده و 96 حذف شده
  1. 66 96
      packages/qjkankan-editor/public/static/template/customTooltip.xml

+ 66 - 96
packages/qjkankan-editor/public/static/template/customTooltip.xml

@@ -93,7 +93,7 @@
         set(layer[get(tooltipname)].height,30); 
         set(layer[get(tooltipname)].edge,center);
         set(layer[get(tooltipname)].background,false);
-
+        set(layer[get(tooltipname)].pos,pos);
         set(layer[get(tooltipname)].padding,0);
         set(layer[get(tooltipname)].type,'html');
         set(layer[get(tooltipname)].url,'%SWFPATH%/plugins/textfield.swf');
@@ -101,58 +101,17 @@
         set(layer[get(tooltipname)].align,center);
   
         set(layer[get(tooltipname)].ondown,'dragJQlayer();');
-        set(layer[get(tooltipname)].onup,js(__krfn.angle.updateHotSpotData(get(xml.scene),get(hsName),get(atv),get(atv))));
+        set(layer[get(tooltipname)].onup,js(__krfn.angle.updateHotSpotData(get(xml.scene),get(hsName),get(ath),get(atv))));
                 <!-- set(hotspot[get(hsp_name)].onup,js(__krfn.angle.updateHotSpotData(get(xml.scene),get(name),get(ath),get(atv)))); -->
-        txtadd(labelCode, '        <div style="display: flex; align-items: center; justify-content: center; position: relative; border: 1px solid ',get(borderColor),'; padding: 6px 10px; white-space: pre; border-radius: 5px; background: ',get(fillColor),'">','            <div style="text-align: left; font-size:',get(fontSize),'px; color: ',get(textColor),'; line-height: 1.4;">',get(hotspottitle),'</div>
+        txtadd(labelCode, '<div style="display: flex; align-items: center; justify-content: center; position: relative; border: 1px solid ',get(borderColor),'; padding: 6px 10px; white-space: pre; border-radius: 5px; background: ',get(fillColor),'">','            <div style="text-align: left; font-size:',get(fontSize),'px; color: ',get(textColor),'; line-height: 1.4;">',get(hotspottitle),'</div>
         </div>'); 
-      
+        
         <!-- label方位 -->
         if(get(hotspottype) LE 2,
+        trace('hotspottype::',get(hotspottype),'::tooltipname::',get(tooltipname),'pos::',get(pos));
         set_label_pos(get(tooltipname),get(pos));
        );
-       <!-- if(get(hotspottype) LE 2,
-        add(dHeight,get(height), 5);
-        if(
-            pos == 'top',
-            mul(dHeight, -1);
-            set(layer[get(tooltipname)].x,0);
-            set(layer[get(tooltipname)].y,get(dHeight));
-        );
-         if(
-            pos == 'bottom',
-            mul(dHeight, 1);
-            set(layer[get(tooltipname)].x,0);
-            set(layer[get(tooltipname)].y,0);
-        );
-        if(
-            pos == 'left',
-            txtadd(jsCode,"document.getElementById('krpanoSWFObject').get('layer[",get(tooltipname),"]').pixelwidth");
-            def(dWidth,number);
-            delayedcall(
-            1,
-            jsget(dWidth,get(jsCode));
-            mul(dWidth, -1);
-            txtadd(tooltipname, 'tooltip_', get(name)); 
-            set(layer[get(tooltipname)].y,0);
-            set(layer[get(tooltipname)].x,get(dWidth));
-            );
-        );
-        if(
-            pos == 'right',
-            txtadd(jsCode,"document.getElementById('krpanoSWFObject').get('layer[",get(tooltipname),"]').pixelwidth");
-            def(dWidth,number);
-            trace('left-id'::,get(tooltipname));
-            delayedcall(
-            1,
-            jsget(dWidth,get(jsCode));
-            mul(dWidth, 1);
-            txtadd(tooltipname, 'tooltip_', get(name)); 
-            set(layer[get(tooltipname)].y,0);
-            set(layer[get(tooltipname)].x,get(dWidth));
-            );
-        );
-       );
-        -->
+
                 <!-- 个性化标签(3) -->
         if(get(hotspottype) == 3,    
             trace('lineDirection2::',lineDirection); 
@@ -224,7 +183,7 @@
         set(layer[get(tooldot)].bgroundedge,5);
 
         set(layer[get(tooldot)].ondown,'dragJQlayer();');
-        set(layer[get(tooldotupdateHotSpotData )].onup,js(__krfn.angle.updateHotSpotData(get(xml.scene),get(hsName),get(ath),get(atv))));
+        set(layer[get(tooldot)].onup,js(__krfn.angle.updateHotSpotData(get(xml.scene),get(hsName),get(ath),get(atv))));
 
                 <!-- 个性化标签(3) -->
         if(get(hotspottype) == 3,    
@@ -275,56 +234,64 @@
 
     <action name='set_label_pos'>
         <!-- label方位 -->
-       set(tooltipname,%1);
-       set(pos,%2);
-       trace('set_label_pos::',get(tooltipname),'pos::',pos);
-      
+       set(posName,%1);
+       set(pos,%2);    
         if(
             pos == 'top',
-            add(dHeight,get(layer[get(tooltipname)].height), 5);
+            trace('height::',get(layer[get(posName)].height));
+            add(dHeight,get(layer[get(posName)].height), 12);
             mul(dHeight, -1);
-            set(layer[get(tooltipname)].x,0);
-            set(layer[get(tooltipname)].y,get(dHeight));
+            set(layer[get(posName)].x,0);
+            set(layer[get(posName)].y,get(dHeight));
         );
          if(
             pos == 'bottom',
-            add(dHeight,get(layer[get(tooltipname)].height), 5);
+            trace('height',get(layer[get(posName)].height));
+            add(dHeight,get(layer[get(posName)].height), 12);
             mul(dHeight, 1);
-            set(layer[get(tooltipname)].x,0);
-            set(layer[get(tooltipname)].y,get(dHeight));
+            set(layer[get(posName)].x,0);
+            set(layer[get(posName)].y,get(dHeight));
         );
         if(
             pos == 'left',
-            txtadd(jsCode,"document.getElementById('krpanoSWFObject').get('layer[",get(tooltipname),"]').pixelwidth");
-            def(dWidth,number);
-            delayedcall(
-            1,
-            jsget(dWidth,get(jsCode));
-            mul(dWidth, -1);
-            txtadd(tooltipname, '', get(tooltipname)); 
-            trace('left'::,dWidth,"id::",get(tooltipname));
-            set(layer[get(tooltipname)].y,0);
-            set(layer[get(tooltipname)].x,get(dWidth));
-            );
+            delayedcall(0.3,delaySetLabelHoraLeft(get(posName)));
         );
         if(
             pos == 'right',
-            txtadd(jsCode,"document.getElementById('krpanoSWFObject').get('layer[",get(tooltipname),"]').pixelwidth");
-            def(dWidth,number);
-            delayedcall(
-            1,
-            jsget(dWidth,get(jsCode));
-            mul(dWidth, 1);
-            txtadd(tooltipname, '', get(tooltipname)); 
-            trace('right'::,dWidth,"id::",get(tooltipname));
-
-            set(layer[get(tooltipname)].y,0);
-            set(layer[get(tooltipname)].x,get(dWidth));
-            );
+            delayedcall(0.3,delaySetLabelHoraRight(get(posName)));
         );
+    </action>
 
-       
-       
+    <action name="delaySetLabelHoraLeft">     
+        ifnot(isvalue(name),
+            trace('notName1',);
+            set(name,%1);
+            txtreplace(name, 'tooltip_', ''); 
+        );
+        def(dWidth,number);
+        txtadd(tooltipname, 'tooltip_', get(name)); 
+        txtadd(jsCode,"document.getElementById('krpanoSWFObject').get('layer[",get(tooltipname),"]').pixelwidth");
+        jsget(dWidth,get(jsCode));
+        trace('tooltipname::',get(tooltipname),'dWidth::',dWidth);
+        mul(dWidth, -1);
+        set(layer[get(tooltipname)].y,0);
+        set(layer[get(tooltipname)].x,get(dWidth)); 
+    </action>
+    <action name="delaySetLabelHoraRight"> 
+        <!-- 解决单传时 -->
+        ifnot(isvalue(name),
+            trace('notName1',);
+            set(name,%1);
+            txtreplace(name, 'tooltip_', ''); 
+        );
+        def(dWidth,number);
+        txtadd(tooltipname, 'tooltip_', get(name)); 
+        txtadd(jsCode,"document.getElementById('krpanoSWFObject').get('layer[",get(tooltipname),"]').pixelwidth");
+        jsget(dWidth,get(jsCode));
+        trace('tooltipname::',get(tooltipname),'dWidth::',dWidth);
+        mul(dWidth, 1);
+        set(layer[get(tooltipname)].y,0);
+        set(layer[get(tooltipname)].x,get(dWidth)); 
     </action>
     <action name="removeJQHotspot">
         set(delHotspot,%1);
@@ -338,24 +305,25 @@
     <!-- 编辑热点 -->
     <action name="editJQHotspot">
       showlog();
-      trace('editJQHotspot',%3);
+      trace('editJQHotspot',%2);
       set(hsp_name,%1); 
       set(hsp_type,%2); 
       txtadd(hsLabel, 'tooltip_', %1); 
       txtadd(hsDot, 'tooldot_', %2); 
-      set(hotspot[get(hsp_name)].height,%8);
-      set(hotspot[get(hsp_name)].width,'prop');
       set(hotspot[get(hsp_name)].hotspottitle,%3);
       set(hotspot[get(hsp_name)].hotspotStyle,%10);
       txtsplit(%10,'|',fontSize,pos,isHover,borderColor,fillColor,textColor,isShowLine,isTextWrap,lineDirection,textDirection,textNumPerLine,duration,frameNumber);
-   
       txtadd(labelCode, '<div style="display: flex; align-items: center; justify-content: center; position: relative; border: 1px solid ',get(borderColor) ,'; padding: 6px 10px; white-space: pre; border-radius: 5px; background: ',get(fillColor),'">','        <div style="text-align: left; font-size:',get(fontSize),'px; color: ',get(textColor),'; line-height: 1.4;">',%3,'</div></div>');     
       copy(layer[get(hsLabel)].html, labelCode);
-      if(get(%3) LE 2,
-         set_label_pos(get(hsLabel),get(pos));
-       );
-
 
+      if(%2 LE 2,
+        set(hotspot[get(hsp_name)].height,%8);
+        set(hotspot[get(hsp_name)].width,'prop');
+        set_label_pos(get(hsLabel),get(pos));
+       );
+      if(%2 == 3,
+       trace('edit3');
+      );
 
 </action>
 
@@ -364,7 +332,6 @@
        txtreplace(hsName, 'tooltip_', ''); 
        txtreplace(hsName, 'tooldot_', ''); 
 
-           <!-- trace('drag::',hsName); -->
     <!-- copy(drag_currentx, x);
         copy(drag_currenty, y);
         copy(drag_stagex, mouse.stagex); 
@@ -382,14 +349,16 @@
         sub(drag_adjusty,mouse.stagey, hotspotcentery); 
     
         asyncloop(
-                         <!-- 计算热点中心点 -->
+            <!-- 计算热点中心点 -->
             pressed,
             sub(dx, mouse.stagex, drag_adjustx);
             sub(dy, mouse.stagey, drag_adjusty);
             screentosphere(dx, dy, ath, atv); 
-                          <!-- 更新 -->
+            <!-- 更新 -->
             copy(hotspot[get(hsName)].ath, ath);
-            copy(hotspot[get(hsName)].atv, atv);
+            copy(hotspot[get(hsName)].atv, atv);,
+            set(global.ath,get(ath));
+            set(global.atv,get(atv));
         );   
 
 </action>
@@ -405,7 +374,8 @@
             pressed, 
             sub(dx, mouse.stagex, drag_adjustx);
             sub(dy, mouse.stagey, drag_adjusty);
-            screentosphere(dx, dy, ath, atv); 
+            screentosphere(dx, dy, ath, atv);,
+            trace('last-ath1::',get(ath),'last-atv::',get(atv));
         );
 </action>
 </krpano>