截至krpano 1.19 pr5,在VR中支持的热点只有distorted为true的图像热点,这些图像热点可能是链接到其它场景,或者是弹出图片,如果是后者的话,在VR中是有问题的,我们希望在VR下,这些用途为弹出图片的热点不要显示,只在正常模式下显示。
我们有下面两种用途的热点:
|
<hotspotname="spot2"style="skin_hotspotstyle"ath="42.657"atv="24.198"linkedscene="scene_02mt"/>
<hotspotname="spot3"style="hotspotstyle|normalhs" ath="22.657"atv="14.198"onclick="openpic()"/>
|
spot2是用于链接到其它scene里的,而spot3是弹出图片的。我们给spot3加了一个style为normalhs,如下。在这个例子中,所有不想在VR中显示的但distorted为true的图像热点,我们都加上这个设置:
|
<style name="normalhs"normal="false"onloaded="if(webvr.isenabled,set(visible,false),set(visible,true));" />
|
注意,如果所加的热点本身有onloaded。例如,
|
<hotspotname="spot3"style="hotspotstyle" ath="22.657"atv="14.198"onclick="openpic()"onloaded="otheraction();"/>
|
这样的话,需要把normalhs单独写出来。写成
|
<hotspotname="spot3"style="hotspotstyle" ath="22.657"atv="14.198"onclick="openpic()"normal="false"onloaded="if(webvr.isenabled,set(visible,false),set(visible,true));otheraction();" />
|
然后tour.xml加入下面代码,在scene外,上面style元素也一样是放在scene外面。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<action name="normalhs_enterVR">
for(set(i,0),i
LThotspot.count,inc(i),
if(hotspot[get(i)].normal==
false,
set(hotspot[get(i)].visible,false);
);
);
</action>
<action name="normalhs_exitVR">
for(set(i,0),i
LThotspot.count,inc(i),
if(hotspot[get(i)].normal==
false,
set(hotspot[get(i)].visible,true);
);
);
</action>
|
这两段action就是控制进入VR和退出VR是控制那些含有normal属性且数值为false的热点的显示和隐藏。我们在代码中使用了循环,然后对属性进行了判断,然后设置其visible。
另外在tour.xml加入下面代码(一定要在第三行include代码的后面写,这样才能覆盖掉vtourskin里面的webvr插件设定),将normalhs_enterVR和normalhs_exitVR的调用分别加入到onentervr和onexitvr两个事件当中。
|
<pluginname="WebVR"keep="true"devices="html5"
pluginurl="%SWFPATH%/plugins/webvr.js"
url=""
multireslock.desktop="true"
multireslock.mobile.or.tablet="false"
mobilevr_support="true"
mobilevr_fake_support="true"
onavailable="removelayer(webvr_enterbutton); skin_arrange_buttons(); webvr_onavailable();"
onentervr="normalhs_enterVR();skin_showloading(false); webvr_onentervr(); webvr_setup(); skin_reloadscene_webvr();"
onexitvr="webvr_onexitvr(); webvr_setup(); skin_reloadscene_webvr();normalhs_exitVR();"
/>
|
参考:sparselight.cn