移花接木(23)- 自动旋转与自动浏览全部场景

更新 2016.4.14

导言

自动旋转与自动浏览全部场景,这是做全景时经常要用到的功能,涉及到一个重要的元素,即autorotate,autorotate是一个全局性的元素,通常写在scene标签的外面即可。我们可以通过action来更改autorotate设置。例如,在scene的onstart里进行设置。

krpano 1.19 pr4的自动循环浏览

另一段1.19版本可用的代码

貌似比较繁琐

 

基本的自动旋转代码

将方框内代码替换原有的<autorotate> 标签,如果原先没有<autorotate> 标签,则选择放在<scene>标签的外面的空白处。

enabledtrue代表激活自动旋转。如果不加autorotate元素代码的话,这个enabled默认是false,也就是不自动旋转。

带各种设置的自动旋转代码

将方框内代码替换原有的<autorotate> 标签,如果原先没有<autorotate> 标签,则选择放在<scene>标签的外面的空白处。

waittime代表在最近一次用户交互行为之后要开始自动旋转之前的等待时间。以秒为单位。

speed为旋转速度。当该数值为正值时向右旋转,为负值时向左旋转。

horizon为场景在自动旋转时将达到的水平位置。

tofov为旋转中要达到的视场角。

 

场景开始时旋转,点击按钮切换旋转状态

1. 将下述方框的任一代码(A或B)替换原有的<autorotate> 标签,如果原先没有<autorotate> 标签,则选择放在<scene>标签的外面的空白处。

代码A

代码B

2. 在对应的按钮,通常为<layer>标签中找到onclick属性替换,如果没有onclick属性则直接添加。

 

无按钮控制的自动旋转

自动旋转场景,场景旋转一圈后自动进入下一个场景,最后一个场景浏览结束后,进入第一个场景。

1. 将下述方框的任一代码(A或B)替换原有的<autorotate> 标签,如果原先没有<autorotate> 标签,则选择放在<scene>标签的外面的空白处。

代码A

代码B

2. 在<krpano>标签的onstart属性中检查是否有startup,通常默认情况下都有startup。找到下面的代码

改为

3. 然后在xml文件中加入下面代码:

 

按钮控制的自动旋转

1. 将下述方框的任一代码(A或B)替换原有的<autorotate> 标签,如果原先没有<autorotate> 标签,则选择放在<scene>标签的外面的空白处。

代码A

代码B

2. 在对应的按钮,通常为<layer>标签中找到onclick属性替换,如果没有onclick属性则直接添加。

有按钮控制的自动浏览场景

自动旋转场景,场景旋转一圈后自动进入下一个场景,最后一个场景浏览结束后,进入第一个场景。

1. 将下述方框的任一代码(A或B)替换原有的<autorotate> 标签,如果原先没有<autorotate> 标签,则选择放在<scene>标签的外面的空白处。

代码A

代码B

2. 在<krpano>标签的onstart属性中检查是否有startup,通常默认情况下都有startup。找到下面的代码

改为

3. 然后在xml文件中加入下面代码:

4. 在对应的按钮,通常为<layer>标签中找到onclick属性替换,如果没有onclick属性则直接添加。

 

自动浏览全部场景时,控制单独场景的浏览视场以及速度

下面代码不包含autorotate自身的旋转代码,

按照固定时间自动浏览

1.实际上我们要修改的是bombtimer里的bt_2, 在其它代码不变的情况下,我们不需要计算bt_2,而是使用确定的数值进行取代。

 

<action name=”bombtimer”>

set(autorotate.enabled,true);

set(bt,%1);

add(bt,1);

delayedcall(bomb,1, bombtimer(get(bt)));

if(bt GE 10, set(bt,0); nextscene(););

</action>

2. 上面10就是我们设定的自动浏览时间,在无交互后10秒将自动进入下一个场景。其它没有列出的代码不变。

 

按钮控制跳转到下一个场景

 

 

点击下页查看更多教程

自动旋转以及循环浏览全部场景(适用于1.18以上)

自动循环浏览全部场景(按照规定时间)