krpano让场景开始即展示图片,10秒后自动隐藏

krpano每个场景开始时都显示一张图片在正中央,然后图片在10秒后自动消失或用户可以自行点击图片隐藏。

解决方案:


为了让所显示的图片的自适应屏幕尺寸,首先在tour.xml插入下面的代码(不要放在scene标签内):

<action name="picture_resize">
 
<!-- 使用屏幕宽度或高度的百分之九十 -->
 
div(aspect, layer[%1].imagewidth, layer[%1].imageheight);
 
mul(new_width, stagewidth, 0.90);
 
div(new_height, new_width, aspect);
 
mul(max_height, stageheight, 0.90);
 
if(new_height GT max_height,
 
copy(new_height, max_height);
 
mul(new_width, new_height, aspect);
 
);
 
roundval(new_width);
 
roundval(new_height);
 
copy(layer[%1].width, new_width);
 
copy(layer[%1].height, new_height);
 
</action>

你可以修改上面两个0.9的数字,控制图片在全景窗口中的显示比例。


然后在你要实现该功能的scene标签内加入下面的代码:


<layer name="test" url="1.jpg" align="center"
 
alpha="0" visible="false"
 
onclick="tween(alpha,0);delayedcall(0.5,set(visible,false));"
 
onloaded="picture_resize(get(name));" />
 
 
<events name="picture_period"
 
onpreviewcomplete="
 
set(layer[test].visible,true);
 
tween(layer[test].alpha,1);
 
delayedcall(10,tween(layer[test].alpha,0);delayedcall(0.5,set(layer[test].visible,false)));

layer标签是我们要放进场景开始时的图片,你可以修改url的路径,来选择你想要的图片,然后最后在delayedcall那个地方你可以将10改为你想要的消失时间。

思路解释:

首先得有一个layer,layer只需要设置一下url、align这些属性,具体的尺寸比例我用picture_resiz这个action完成。然后在onclick这个事件中也设置了用户点击图片后自动消失的代码。

大家可以注意到我将visible设置为了false,即不可见,同时alpha也是0.。考虑到如果直接显示可见的话,可能在全景图还没载入完毕,也就是可能部分黑屏时图片就显示了。这样的体验可能不太好。因此我通过一个onpreviewcomplete    event来控制,在预览图全部载入完成后才显示图片,同时加入延时执行10秒的代码实现图片消失。

THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发