| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328 | 
							- <krpano version="1.20.9" title="Virtual Tour">
 
- 	<!-- <plugin name="pp_light" keep="true"
 
- 		url="https://dm.static.elab-plus.com/miniProgram/krpano/plugins/pp_light.js"
 
- 		enabled="true"
 
- 		exposure="0.0"
 
- 		lights="1.0"
 
- 		shadows="5.0"
 
- 		filterrange="60.0"
 
- 		masking="1.0"
 
- 		quality="7"
 
- 		order="1"
 
- 		phase="1"
 
- 		/>
 
- 	
 
- 	<plugin name="pp_sharpen" keep="true"
 
- 		url="https://dm.static.elab-plus.com/miniProgram/krpano/plugins/pp_sharpen.js"
 
- 		enabled="true"
 
- 		strength="5.0"
 
- 		range="5"
 
- 		quality="5"
 
- 		luminanceonly="true"
 
- 		order="2"
 
- 		phase="1"
 
- 		/> -->
 
- 	<action name="mytest">
 
- 		screentosphere(mouse.x, mouse.y, toh, tov);
 
- 		jscall(calc('console.log("'+toh+'")'));
 
- 		jscall(calc('console.log("'+tov+'")'));
 
- 	</action>
 
- 	<events onclick="mytest();" />
 
- 	<!-- startup action - load the first scene -->
 
- 	<action name="startup" autorun="onstart">
 
- 		if(startscene === null OR !scene[get(startscene)], copy(startscene,scene[0].name); );
 
- 		loadscene(get(startscene), null, MERGE);
 
- 		if(startactions !== null, startactions() );
 
- 	</action>
 
- 	<events onloadcomplete="sceneload"></events>
 
- 	<action name="sceneload">
 
- 		jscall('window.sceneload()');
 
- 	</action>
 
- 	<scene name="mainScene" onstart="" havevrimage.mobilevr="false" havevrimage.no-mobilevr="true" lat="" lng=""
 
- 		heading="">
 
- 		<control bouncinglimits="calc:image.cube ? true : false" />
 
- 		<view hlookat="50.082" vlookat="12.404" fovtype="MFOV" fov="90.000" maxpixelzoom="4.0" fovmin="70" fovmax="120"
 
- 			limitview="auto" />
 
- 		<!-- <preview
 
- 			url="https://elab-marketing-web.oss-cn-shanghai.aliyuncs.com/fairyMountain/layout/hospital/panos/ceshi.tiles/preview.jpg" /> -->
 
- 		<image if="!(webvr.isenabled OR device.mobilevr)">
 
- 			<sphere url="%$panorama_url%" />
 
- 		</image>
 
- 		<image if="webvr.isenabled OR device.mobilevr">
 
- 			<sphere url="%$panorama_url%" />
 
- 		</image>
 
- 		<!-- 电子人 -->
 
- 		<hotspot name="video"
 
- 			ath="50.082" 
 
- 			atv="14"
 
- 			url="https://dm.static.elab-plus.com/videoplayer.js"
 
- 			videourl=""
 
- 			width="180"
 
- 			height="320"
 
- 			chromakey="0x238E54|0.294|0.133"
 
- 			preload="true"
 
- 			pausedonstart="false"
 
- 			loop="true"
 
- 			distorted="true"
 
- 			muted="true"
 
- 			zoom="true"
 
- 			autopause="true"
 
- 			autoresume="true"
 
- 			scale="1"
 
- 			onvideoready="videoreadyFunc"
 
- 			onvideoplay="videoplayHandle"
 
- 			cursor="grab"
 
- 			zorder="2"
 
- 			enabled="false"
 
- 		>
 
- 		</hotspot>
 
- 		<!-- 电子人的阴影 -->
 
- 		<hotspot name="image_hotspot" ath="50.082" atv="14" rotate="0" zorder="1" enabled="false"
 
- 			distorted="true" scale="1" alpha="0.5" visible="false" width="180" height="320"
 
- 			url="https://dm.static.elab-plus.com/miniProgram/shadow11.png" keep="true"></hotspot>
 
- 		<!-- 宠物视频 -->
 
- 		<hotspot name="petVideo"
 
- 			ath="80.0" 
 
- 			atv="14"
 
- 			url="https://dm.static.elab-plus.com/videoplayer.js"
 
- 			videourl=""
 
- 			width="180"
 
- 			height="180"
 
- 			chromakey="0x238E54|0.294|0.133"
 
- 			preload="true"
 
- 			pausedonstart="false"
 
- 			loop="true"
 
- 			distorted="true"
 
- 			muted="true"
 
- 			zoom="true"
 
- 			autopause="true"
 
- 			autoresume="true"
 
- 			scale="1"
 
- 			zorder="2"
 
- 			enabled="false"
 
- 		>
 
- 		</hotspot>
 
- 		<!-- 红包 -->
 
- 		<hotspot name="redBox"
 
- 			ath="60" 
 
- 			atv="14"
 
- 			url="https://dm.static.elab-plus.com/videoplayer.js"
 
- 			videourl=""
 
- 			chromakey="0x30B524|0.294|0.133"
 
- 			preload="true"
 
- 			pausedonstart="false"
 
- 			loop="true"
 
- 			distorted="true"
 
- 			muted="true"
 
- 			zoom="true"
 
- 			autopause="true"
 
- 			autoresume="true"
 
- 			scale="1"
 
- 			zorder="2"
 
- 			enabled="true"
 
- 			onclick="toggleRedBox();"
 
- 		>
 
- 		</hotspot>
 
- 		<action name="toggleRedBox">
 
- 			jscall('window.toggleRedBox()');
 
- 		</action>
 
- 		<action name="showRedBox">
 
- 			set(hotspot[redBox].visible, 'true');
 
- 			hotspot[redBox].playvideo(%1, '', false);
 
- 		</action>
 
- 		<action name="hideRedBox">
 
- 			hotspot[redBox].stop();
 
- 			set(hotspot[redBox].visible, get(false));
 
- 		</action>
 
- 		<action name="mobilescale" autorun="preinit" devices="mobile">
 
- 		    mul(stagescale,0.5);
 
- 		</action>
 
- 		<action name="rotateVideo">
 
- 			set(hotspot[video].rotate, %1);
 
- 		</action>
 
- 		<action name="playSceneName">
 
- 			def(scale, string, get(hotspot[video].scale));
 
- 		    <!-- 打印日志 -->
 
- 		    <!-- showlog(true, top); -->
 
- 		    <!-- mobilescale(); -->
 
- 		    <!-- 播放视频 -->
 
- 			set(hotspot[video].visible, 'true');
 
- 			set(hotspot[image_hotspot].visible, 'true');
 
- 		    hotspot[video].playvideo(%1, '', false);
 
- 			set(hotspot[video].scale, get(scale));
 
- 		</action>
 
- 		<action name="stopPeopleVideo">
 
- 			<!-- 播放视频 -->
 
- 			<!-- hotspot[video].playvideo('', '', false); -->
 
- 			hotspot[video].stop();
 
- 			set(hotspot[video].visible, get(false));
 
- 			set(hotspot[image_hotspot].visible, get(false));
 
- 		</action>
 
- 		<!-- 显示数字宠物 -->
 
- 		<action name="playPetVideo">
 
- 			def(scale, string, get(hotspot[petVideo].scale));
 
- 			set(hotspot[petVideo].visible, 'true');
 
- 			hotspot[petVideo].playvideo(%1, '', false);
 
- 			set(hotspot[petVideo].scale, get(scale));
 
- 		</action>
 
- 		<!-- 隐藏数字宠物 -->
 
- 		<action name="stopPetVideo">
 
- 			hotspot[petVideo].stop();
 
- 			set(hotspot[petVideo].visible, get(false));
 
- 		</action>
 
- 		
 
- 		<!-- 设置数字人缩放大小 -->
 
- 		<action name="scalePeopleChange">
 
- 			set(hotspot[video].scale, %1);
 
- 		</action>
 
- 		<!-- 设置宠物缩放大小 -->
 
- 		<action name="scalePetChange">
 
- 			set(hotspot[petVideo].scale, %1);
 
- 		</action>
 
- 		<!-- 切换状态播放,暂停 -->
 
- 		<action name="toggleMute">
 
- 			set(hotspot[video].muted, %1);
 
- 			set(hotspot[petVideo].muted, %1);
 
- 			mutesound(bgsnd,%1);
 
- 		</action>
 
- 		<!-- 视频初始化完成 -->
 
- 		<action name="videoreadyFunc">
 
- 		    jscall('window.videoready()');
 
- 			<!-- set(hotspot[video].scale, 0.3); -->
 
- 		</action>
 
- 		<!-- 视频播放 -->
 
- 		<action name="videoplayHandle">
 
- 		    jscall('window.onvideoplay()');
 
- 			<!-- set(hotspot[video].scale, 0.3); -->
 
- 		</action>
 
- 		<action name="playBgMusic">
 
- 		    <!-- 播放背景音乐 -->
 
- 		    playsound(bgsnd, %1, true);
 
- 			mutesound(bgsnd,%2);
 
- 			<!-- mutesound(bgsnd,%2); -->
 
- 		</action>
 
- 		<!-- 关闭所有的声音 -->
 
- 		<action name="closeVoice">
 
- 		    destroysound(bgsnd);
 
- 		</action>
 
- 		<!-- 播放音乐设置,引入插件 -->
 
- 		<plugin name="soundinterface" 
 
- 		    url="https://dm.static.elab-plus.com/soundinterface.swf"
 
- 		    alturl="https://dm.static.elab-plus.com/soundinterface.js" 
 
- 		    preload="true"
 
- 		    keep="true"
 
- 		    loop="false"
 
- 			muted="true"
 
- 		    ></plugin>
 
- 		<!-- 截图 -->
 
- 		<action name="makescreenshot_init" type="Javascript" autorun="onstart"><![CDATA[
 
- 			// count the screenshots (for the filenames)
 
- 			krpano.makescreenshot_count = 1;
 
- 			// create an empty Object as makeScreenshot cache
 
- 			var makeScreenshotCache = {};
 
- 			// add a 'makescreenshot' action to krpano
 
- 			krpano.makescreenshot = function(leftX,leftY,screenshotwidth,screenshotheight,hasRedBox=false)
 
- 			{
 
- 				// if there is already a screenshot layer, remove it now
 
- 				console.warn("***makescreenshot***",krpano.webGL,leftX,leftY,screenshotwidth,screenshotheight)
 
- 				var canvas = krpano.webGL.canvas;
 
- 				var pix = window.devicePixelRatio;
 
- 				// make a screenshot as canvas
 
- 				var sizeinfo = {w:screenshotwidth*pix, h:screenshotheight*pix};
 
- 				var crop = {
 
- 					x:leftX*pix,
 
- 					y:leftY*pix,
 
- 					w:screenshotwidth*pix, 
 
- 					h:screenshotheight*pix
 
- 				};
 
- 				var scaledCanvas = document.createElement("canvas");
 
- 				var scaledContext = scaledCanvas.getContext('2d');
 
- 				scaledCanvas.width = 1684;//分享小图的尺寸-宽度-二倍图
 
- 				scaledCanvas.height = 1344;//分享小图的尺寸-高度-二倍图
 
- 				var unit = sizeinfo.w/scaledCanvas.width;
 
- 				var vfw = sizeinfo.w;
 
- 				var vfh = scaledCanvas.height * unit;
 
- 				var screenshotcanvas = krpano.webGL.makeScreenshot(
 
- 					canvas.width, 
 
- 					canvas.height,
 
- 					true, 
 
- 					"png",
 
- 					1.0, 
 
- 					crop, 
 
- 					sizeinfo, 
 
- 					makeScreenshotCache);
 
- 				var shotImg = '';
 
- 				var shareImg = '';
 
- 				if (screenshotcanvas)
 
- 				{
 
- 					//var imgBase64 = screenshotcanvas.toDataURL();
 
- 					// var shotImgBase64 = screenshotcanvas;
 
- 					var imgBase64 = screenshotcanvas;
 
- 					console.warn("***makescreenshot1***",vfw,vfh,scaledCanvas.width,scaledCanvas.height,hasRedBox)
 
- 					if(hasRedBox=='true'){//有前置背景
 
- 						var image = new Image();;
 
- 						image.src = imgBase64;
 
- 						image.onload = function() {
 
- 							scaledContext.save();
 
- 							scaledContext.drawImage(image,0,0,vfw,vfh,0,0,scaledCanvas.width,scaledCanvas.height);
 
- 							scaledContext.restore();
 
- 							var imageObj = new Image();;
 
- 							imageObj.src = 'https://dm.static.elab-plus.com/miniProgram/shareBg.png';
 
- 							imageObj.setAttribute("crossOrigin", "anonymous");
 
- 							imageObj.onload = function() {
 
- 								scaledContext.drawImage(imageObj,0,0,scaledCanvas.width,scaledCanvas.height,0,0,scaledCanvas.width,scaledCanvas.height);
 
- 								var img_src = scaledCanvas.toDataURL();
 
- 								screenshot(img_src,2);//生成分享的图
 
- 							}
 
- 						}
 
- 					}
 
- 					
 
- 					
 
- 					screenshot(imgBase64,1);
 
- 					function screenshot(imgBase64,type){
 
- 						var reqUrl = window.$config.api_url + 'elab-marketing-file/upload/uploadBase64';
 
- 						var data = JSON.stringify({
 
- 							base64Str: imgBase64
 
- 						})
 
- 						var request = $.ajax({
 
- 							type: "POST",
 
- 							url: reqUrl,
 
- 							contentType: 'application/json;charset=UTF-8',
 
- 							data: data
 
- 						});
 
- 						request.done(function(result) {
 
- 							console.warn("***krpano-request-result****",hasRedBox,result)
 
- 							if (result && result.success) {
 
- 								let shottingImg = result.single.filePath;
 
- 								if(type==1){
 
- 									shotImg = shottingImg;
 
- 								}else if(type==2){
 
- 									shareImg = shottingImg;
 
- 								}
 
- 								if(hasRedBox=='true'){
 
- 									if(shotImg && shareImg){
 
- 										window.show_img(shotImg,shareImg);
 
- 									}
 
- 								}else{
 
- 									window.show_img(shotImg,shareImg);
 
- 								}
 
- 							}
 
- 						});
 
- 						request.fail(function(jqXHR, textStatus) {
 
- 							console.warn("Request failed: " + textStatus);
 
- 						});
 
- 					}
 
- 				}
 
- 			}	
 
- 		]]>
 
- 		</action>
 
- 		
 
- 	</scene>
 
- </krpano>
 
 
  |