krpano学习笔记之特殊视角View

vtourskin皮肤的鼠标右键菜单中有视野改变方法

<!-- 鼠标右键菜单 context menu - http://krpano.com/docu/xml/#contextmenu -->
	<contextmenu>
		。。。。。。
		
		<!-- 正常视野 -->
		<item name="nv" caption="Normal View"        
		  		  onclick="skin_view_normal();"        
		  		  showif="view.vlookatrange == 180" 
		  		  separator="true"      />
		<!-- 鱼眼视野 -->
		<item name="fv" 
		          caption="Fisheye View"       
		          onclick="skin_view_fisheye();"       
		          showif="view.vlookatrange == 180" 
		          devices="flash|webgl" />
		<!-- 立体视野 -->          
		<item name="sv" 
				caption="Stereographic View" 
				onclick="skin_view_stereographic();" 
				showif="view.vlookatrange == 180" 
				devices="flash|webgl" />
		<!-- 建筑视野 -->          
		<item name="av" 
				caption="Architectural View" 
				onclick="skin_view_architectural();" 
				showif="view.vlookatrange == 180"                       />
		<!-- Pannini 视野 -->
		<item name="pv" 
				caption="Pannini View"       
				onclick="skin_view_pannini();"       
				showif="view.vlookatrange == 180" 
				devices="flash|webgl" />
		<!-- 小行星视野 -->
		<item name="lp"
		 		caption="Little Planet View" 
		 		onclick="skin_view_littleplanet();"  
		 		showif="view.vlookatrange == 180" 
		 		devices="flash|webgl" />
	</contextmenu>



	<!-- 视野缓动 -->
	<action name="skin_view_look_straight">
		if(view.vlookat LT -80 OR view.vlookat GT +80,
			tween(view.vlookat, 0.0, 1.0, easeInOutSine);
			tween(view.fov,     100, distance(150,0.8));
		);
		skin_deeplinking_update_url(1.0);
	</action>

	<action name="skin_view_normal">
		skin_view_look_straight();
		tween(view.architectural, 0.0, distance(1.0,0.5));
		tween(view.pannini,       0.0, distance(1.0,0.5));
		tween(view.distortion,    0.0, distance(1.0,0.5));
	</action>

	<action name="skin_view_fisheye">
		skin_view_look_straight();
		tween(view.architectural, 0.0,  distance(1.0,0.5));
		tween(view.pannini,       0.0,  distance(1.0,0.5));
		tween(view.distortion,    0.35, distance(1.0,0.5));
	</action>

	<action name="skin_view_stereographic">
		skin_view_look_straight();
		tween(view.architectural, 0.0, distance(1.0,0.5));
		tween(view.pannini,       0.0, distance(1.0,0.5));
		tween(view.distortion,    1.0, distance(1.0,0.8));
	</action>

	<action name="skin_view_architectural">
		skin_view_look_straight();
		tween(view.architectural, 1.0, distance(1.0,0.5));
		tween(view.pannini,       0.0, distance(1.0,0.5));
		tween(view.distortion,    0.0, distance(1.0,0.5));
	</action>

	<action name="skin_view_pannini">
		skin_view_look_straight();
		tween(view.architectural, 0.0, distance(1.0,0.5));
		tween(view.pannini,       1.0, distance(1.0,0.8));
		if(view.distortion LT 0.1,
			tween(view.distortion, 1.0, distance(1.0,0.8));
		);
	</action>

	<action name="skin_view_littleplanet">
		tween(view.architectural, 0.0, distance(1.0,0.5));
		tween(view.pannini,       0.0, distance(1.0,0.5));
		tween(view.distortion,    1.0, distance(1.0,0.8));
		tween(view.fov,           150, distance(150,0.8));
		tween(view.vlookat,        90, distance(100,0.8));
		tween(view.hlookat, calc(view.hlookat + 100.0 + 45.0*random), distance(100,0.8));
		skin_deeplinking_update_url(1.0);
	</action>

	<action name="skin_deeplinking_update_url" scope="local" args="delay">
		if(skin_settings.deeplinking AND (!webvr OR webvr.isenabled === false) AND global.lpinfo === null,
			delayedcall(skin_deeplinking_update, calc(delay == null ? 0.1 : delay), skin_deeplinking_update_url_process() );
		);
	</action>

	<action name="skin_deeplinking_update_url_process" scope="local">
		copy(adr, browser.location);
		indexoftxt(qi, get(adr), '?');
		if(qi GT 0, subtxt(adr, adr, 0, get(qi)));
		copy(si, scene[get(xml.scene)].index);
		copy(h, view.hlookat);
		copy(v, view.vlookat);
		copy(f, view.fov);
		copy(d, view.distortion);
		copy(a, view.architectural);
		clamp(d, 0.0, 1.0);
		clamp(a, 0.0, 1.0);
		set(pp, calc(f LT 10 ? 6 : 2));
		roundval(h, get(pp));
		roundval(v, get(pp));
		roundval(f, get(pp));
		roundval(d, 2);
		roundval(a, 1);
		set(adr, calc(adr + '?startscene=' + si + '&amp;startactions=lookat('+h+','+v+','+f+','+d+','+a+');'));
		js( history.replaceState(null, document.title, get(adr)); );
	</action>



onclick中的方法基本上可以直接调用!
不行的话,自己action,调用view参数,用tween慢慢调吧!

都是从小白过来的……谁还没调过参数咋的……

最后发现有现成的,~ 一天白忙活了~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值