效果
在漫游开始时,让默认皮肤下方的导航条以及缩略图隐藏起来,如下图所示:
另外,出于某种原因,我们希望移除所有皮肤。
1.19 pr4代码
1.19 pr4版本 可以直接插入以下代码:
1 2 3 |
<action name="hide_vtourskin_all" autorun="onstart"> delayedcall(0.45,skin_hideskin()); </action> |
这样的话 ,先出现半秒左右时间,然后自动向下隐藏。
如果希望一开始就隐藏,首先找到默认皮肤vtourskin.xml,将
1 |
set(layer[skin_layer].visible, true); |
改为
1 |
set(layer[skin_layer].visible, false); |
然后在空白处插入以下代码:
1 2 3 |
<action name="hide_vtourskin_all" autorun="onstart"> delayedcall(0.5,skin_hideskin(instant);set(layer[skin_layer].visible,false);); </action> |
这时候在两侧还有两个箭头。我们可以将其visible属性设置为false,进行隐藏。找到
1 2 3 4 5 6 7 |
<!-- previous/next scene buttons for the hidden skin mode --> <layer name="skin_btn_prev_fs" keep="true" type="container" align="lefttop" x="-50" width="40" height="100%" bgcapture="true" alpha="0.25" capture="false" zorder="2" onclick="skin_nextscene_loop(-1);" onhover="tween(alpha,1.0);" onout="tween(alpha,0.25);" ondown.touch="onhover();" onup.touch="onout();"> <layer name="skin_btn_prev_fs_icon" style="skin_base" crop="0|64|64|64" align="center" scale="0.5" enabled="false" /> </layer> <layer name="skin_btn_next_fs" keep="true" type="container" align="righttop" x="-50" width="40" height="100%" bgcapture="true" alpha="0.25" capture="false" zorder="2" onclick="skin_nextscene_loop(+1);" onhover="tween(alpha,1.0);" onout="tween(alpha,0.25);" ondown.touch="onhover();" onup.touch="onout();"> <layer name="skin_btn_next_fs_icon" style="skin_base" crop="64|64|64|64" align="center" scale="0.5" enabled="false" /> </layer> |
改为
1 2 3 4 5 6 7 |
<!-- previous/next scene buttons for the hidden skin mode --> <layer name="skin_btn_prev_fs" keep="true" type="container" visible="false" align="lefttop" x="-50" width="40" height="100%" bgcapture="true" alpha="0.25" capture="false" zorder="2" onclick="skin_nextscene_loop(-1);" onhover="tween(alpha,1.0);" onout="tween(alpha,0.25);" ondown.touch="onhover();" onup.touch="onout();"> <layer name="skin_btn_prev_fs_icon" style="skin_base" crop="0|64|64|64" align="center" scale="0.5" enabled="false" /> </layer> <layer name="skin_btn_next_fs" keep="true" type="container" visible="false" align="righttop" x="-50" width="40" height="100%" bgcapture="true" alpha="0.25" capture="false" zorder="2" onclick="skin_nextscene_loop(+1);" onhover="tween(alpha,1.0);" onout="tween(alpha,0.25);" ondown.touch="onhover();" onup.touch="onout();"> <layer name="skin_btn_next_fs_icon" style="skin_base" crop="64|64|64|64" align="center" scale="0.5" enabled="false" /> </layer> |
另外找到
1 2 3 |
if(scene.count GT 1, set(layer[skin_btn_prev_fs].visible, true); set(layer[skin_btn_next_fs].visible, true); |
改为
1 2 3 |
if(scene.count GT 1, set(layer[skin_btn_prev_fs].visible, false); set(layer[skin_btn_next_fs].visible, false); |
在个别场景完全隐藏皮肤
在tour.xml的scene标签外加入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<action name="hide_vtourskin_scene"> delayedcall(0, skin_hideskin(instant); set(layer[skin_layer].visible,false); set(layer[skin_btn_prev_fs].visible, false); set(layer[skin_btn_next_fs].visible, false); ); </action> <action name="show_vtourskin_scene"> delayedcall(0, skin_showskin(instant); set(layer[skin_layer].visible,true); ); </action> <events name="hide_vtourskin_control" keep="true" onnewpano=" if(scene[get(xml.scene)].index == 0 OR scene[get(xml.scene)].index == 2, hide_vtourskin_scene(); , show_vtourskin_scene(); )" /> |
通过index来控制需要隐藏的场景,如果有多个场景需要隐藏,则使用OR来增加,如上面则是第一个和第三个场景需要隐藏皮肤。
其它版本代码
下面的代码基于1.18以上1.19 pr3以下版本,主要是使用了autorun=”onstart”,如果我们要完全隐藏的话,我们应该让skin_scroll_window和skin_control_bar两个元素隐藏起来。
1 2 3 4 |
<action name="hide_vtourskin" autorun="onstart"> set(layer[skin_scroll_window].visible,false); set(layer[skin_control_bar].visible,false); </action> |
如果我们要重新显示:
1 2 3 4 |
<action name="show_vtourskin"> set(layer[skin_scroll_window].visible,true); set(layer[skin_control_bar].visible,true); </action> |
另外,如果我们只是让它按照原有的方式往下隐藏,也就是还能看到左下方title和箭头的话:
1 2 3 |
<action name="hide_vtourskin_all" autorun="onstart"> delayedcall(0.45, skin_hideskin()); </action> |
自1.19 pr3 之后 krpano支持对默认皮肤的即时隐藏。也就是说不会闪一下再消失。
1 |
skin_hideskin('instant'); |
如果需要完全移除皮肤,可以将含有“skin_”字样的元素全部使用removelayer移除掉:
1 2 3 4 5 6 7 8 |
<action name="rnskin"> set(events[skin_events].name, null); for(set(i,0), i LT layer.count, inc(i), copy(layername, layer[get(i)].name); subtxt(namestart, get(layername), 0, 5); if(namestart == 'skin_', removelayer(get(layername)); dec(i); ); ); </action> |
当然你可以直接移除include代码或将其注释起来。
在 “让默认导航条隐藏或完全移除皮肤” 上有 2 条评论