thumbs.xml 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678
  1. <!-- skin events -->
  2. <krpano>
  3. <skin_settings
  4. thumbs="true"
  5. thumbs_width="280" thumbs_height="220" thumbs_padding="25" thumbs_crop="0|0|670|482"
  6. mthumbs_width="300" mthumbs_height="200" mthumbs_padding="0" mthumbs_crop="0|0|670|482"
  7. thumbs_opened="false"
  8. thumbs_text="true"
  9. thumbs_dragging="true"
  10. thumbs_onhoverscrolling="false"
  11. thumbs_scrollbuttons="false"
  12. thumbs_scrollindicator="false"
  13. thumbs_loop="false"
  14. deeplinking="false"
  15. loadscene_blend="BLEND(1)"
  16. loadscene_blend_prev="BLEND(1)"
  17. loadscene_blend_next="BLEND(1)"
  18. design_thumbborder_bgborder="4 0xaf8c48 1.0"
  19. design_thumbborder_padding="2"
  20. design_thumbborder_bgroundedge="5"
  21. design_text_css="color:#FFFFFF; font-family:Arial; font-weight:bold;"
  22. thumbscc="null"
  23. thumbscount="0"
  24. />
  25. <layer name="skin_scroll_container" type="container" keep="true" align.normal="center" align.mobile="right" zorder="100"
  26. width.normal="80%" width.mobile="300" height.normal="240" height.mobile="100%" x="0" y="0" bgroundedge="0" bgcolor="#000" maskchildren="true" >
  27. <!-- <layer name="skin_thumbs_scrollleft" style="skin_glow" url="https://bigscene.4dage.com/panorama/img/ui/left.jpg" align="left" x="0" y="0" height="100%" width="prop" zorder="2" alpha="1.0" ondown="asyncloop(pressed, layer[skin_thumbs].scrollby(+2,0));" visible="true" />
  28. <layer name="skin_thumbs_scrollright" style="skin_glow" url="https://bigscene.4dage.com/panorama/img/ui/right.jpg" align="right" x="0" y="0" height="100%" width="prop" zorder="2" alpha="1.0" ondown="asyncloop(pressed, layer[skin_thumbs].scrollby(-2,0));" visible="true" /> -->
  29. <layer name="skin_thumbs_container" type="container" align="center" width="100%" height="100%" visible="true">
  30. <layer name="skin_thumbs" state="opened" url.flash="%SWFPATH%/plugins/scrollarea.swf" url.html5="%SWFPATH%/plugins/scrollarea.js" direction.normal="h" direction.mobile="v" align.normal="center" align.mobile="top"
  31. width.normal="500" width.mobile="90%" height.normal="90%" height.mobile="600" zorder="1" onloaded="skin_updatescroll();" onscroll="skin_updatethumbscroll();" />
  32. </layer>
  33. </layer>
  34. <events name="skin_events" keep="true"
  35. onxmlcomplete="set(events[skin_events].onxmlcomplete,null); skin_startup();"
  36. onnewpano="skin_showloading(true); skin_deeplinking_update_url();activatespot();skin_startup();"
  37. onremovepano="skin_showloading(true);"
  38. onloadcomplete="skin_showloading(false);"
  39. onidle="skin_deeplinking_update_url();"
  40. onkeydown="skin_keydown_event();"
  41. onmousedown="skin_showthumbs(false);"
  42. />
  43. <style name="thumbborder_style" keep="true" type="container" zorder="5" width.normal="calc:skin_settings.thumbs_width" height.normal="calc:skin_settings.thumbs_height" width.mobile="calc:skin_settings.mthumbs_width" height.mobile="calc:skin_settings.mthumbs_height"
  44. visible="true" enabled="false" align="lefttop" bgborder="0" bgcolor.normal="0x0e89fc" bgcolor.mobile="0x211d1a" bgalpha="1"/>
  45. <style name="skin_thumbtext_style" url="https://bigscene.4dage.com/panorama/plugins/textfield.swf" align="bottom" width="100%" autoheight="true" y="0" enabled="false" background="true" bgalp="0.8" backgroundcolor="0x000" border="false" css="calc:skin_settings.design_text_css + ' text-align:center; font-size:14px;'" textshadow="get:skin_settings.design_text_shadow" />
  46. <!-- skin actions -->
  47. <action name="skin_startup">
  48. set(ggid,get(scene[get(xml.scene)].gid));
  49. if(ggid == skin_settings.thumbscc,
  50. skin_update_scene_infos();
  51. skin_updatescroll();
  52. ,
  53. clearthumbs();
  54. );
  55. </action>
  56. <action name="groupthumbs">
  57. for(set(i,0), i LT scene.count, inc(i),
  58. if(scene[get(i)].gid == ggid
  59. ,
  60. if(groupscenes,
  61. set(groupscenes[get(groupscenes.count)].value,get(scene[get(i)].name));
  62. ,
  63. set(groupscenes[0].value,get(scene[get(i)].name));
  64. );
  65. set(skin_settings.thumbscc,get(ggid));
  66. );
  67. );
  68. if(groupscenes,
  69. set(groupscenes[get(groupscenes.count)].value,scene_01);
  70. set(groupscenes[get(groupscenes.count)].value,scene_02);
  71. set(groupscenes[get(groupscenes.count)].value,scene_03);
  72. set(groupscenes[get(groupscenes.count)].value,scene_04);
  73. set(groupscenes[get(groupscenes.count)].value,scene_05);
  74. set(groupscenes[get(groupscenes.count)].value,scene_06);
  75. );
  76. skin_addthumbs();
  77. </action>
  78. <action name="clearthumbs">
  79. if(groupscenes,
  80. for(set(i,0), i LT groupscenes.count, ,
  81. groupscenes.removearrayitem(get(i));
  82. );
  83. for(set(r,0), r LT layer.count, inc(r),
  84. if(layer[get(r)].parent == skin_thumbs,
  85. removelayer(get(layer[get(r)].name), true);
  86. sub(r,2);
  87. );
  88. );
  89. );
  90. addlayer(skin_thumbborder);
  91. layer[skin_thumbborder].loadstyle(thumbborder_style);
  92. groupthumbs2();
  93. </action>
  94. <action name="groupthumbs2">
  95. for(set(i,0), i LT scene.count - 4, inc(i),
  96. subtxt(newscenename,get(scene[get(i)].name),6,5);
  97. if(newscenename == skin_settings.thumbscc,
  98. ,
  99. if(groupscenes,
  100. set(namecf,false);
  101. for(set(j,0), j LT groupscenes.count, inc(j),
  102. subtxt(newscenenamen,get(groupscenes[get(j)].value),6,5);
  103. if(newscenenamen == newscenename ,
  104. set(namecf,true);
  105. );
  106. );
  107. if(namecf == false,
  108. set(groupscenes[get(groupscenes.count)].value,get(scene[get(i)].name));
  109. );
  110. ,
  111. set(groupscenes[0].value,get(scene[get(i)].name));
  112. );
  113. set(skin_settings.thumbscc,get(newscenename));
  114. );
  115. );
  116. skin_addthumbs
  117. </action>
  118. <action name="skin_addthumbs">
  119. if(device.mobile
  120. ,mskin_addthumbs();
  121. ,
  122. copy(thumbwidth, skin_settings.thumbs_width);
  123. copy(thumbheight, skin_settings.thumbs_height);
  124. copy(thumbpadding, skin_settings.thumbs_padding);
  125. copy(thumbcrop, skin_settings.thumbs_crop);
  126. add(thumbxoffset, thumbwidth, thumbpadding);
  127. mul(thumbxcenter, thumbxoffset, 0.5);
  128. mul(thumbbarwidth, thumbxoffset, groupscenes.count);
  129. add(thumbbarwidth, thumbpadding);
  130. add(thumbbarheight, thumbpadding, thumbheight);
  131. add(thumbbarheight, thumbpadding);
  132. if(skin_settings.thumbs_scrollindicator,
  133. copy(layer[skin_thumbs_scrollindicator].y, thumbbarheight);
  134. add(thumbbarheight, layer[skin_thumbs_scrollindicator].height);
  135. );
  136. copy(layer[skin_thumbs].height, thumbbarheight);
  137. copy(layer[skin_thumbs].width, thumbbarwidth);
  138. mul(halfheight, thumbbarheight, 0.5);
  139. for(set(i,0), i LT groupscenes.count, inc(i),
  140. txtadd(thumbname,'skin_thumb_',get(i));
  141. addlayer(get(thumbname));
  142. if(isen,
  143. txtadd(layer[get(thumbname)].url, https://bigscene.4dage.com/panorama/img/ethumbs/,get(scene[get(groupscenes[get(i)].value)].name),.png);
  144. ,
  145. txtadd(layer[get(thumbname)].url, https://bigscene.4dage.com/panorama/img/thumbs/,get(scene[get(groupscenes[get(i)].value)].name),.png);
  146. );
  147. set(layer[get(thumbname)].keep, true);
  148. set(layer[get(thumbname)].parent, 'skin_thumbs');
  149. set(layer[get(thumbname)].align, lefttop);
  150. copy(layer[get(thumbname)].crop, thumbcrop);
  151. copy(layer[get(thumbname)].width, thumbwidth);
  152. copy(layer[get(thumbname)].height, thumbheight);
  153. set(layer[get(thumbname)].zorder, 10);
  154. mul(thumbx,i, thumbxoffset);
  155. add(thumbx, thumbpadding);
  156. copy(layer[get(thumbname)].x, thumbx);
  157. copy(layer[get(thumbname)].y, thumbpadding);
  158. add(scene[get(i)].thumbx, thumbx, thumbxcenter);
  159. copy(scene[get(i)].thumby, thumbpadding);
  160. set(layer[get(thumbname)].linkedscene, get(groupscenes[get(i)].value) );
  161. set(layer[get(thumbname)].onclick, txtadd(layer[skin_thumbborder].parent, get(name),bg); skin_showthumbs(false); loadscene(get(linkedscene),null, get(skin_settings.loadscene_flags),get(skin_settings.loadscene_blend));skin_update_scene_infos(); );
  162. if(skin_settings.tooltips_thumbs,
  163. set(layer[get(thumbname)].tooltip, get(scene[get(groupscenes[get(i)].value)].title) );
  164. layer[get(thumbname)].loadstyle(skin_tooltips);
  165. );
  166. if(skin_settings.thumbs_text,
  167. txtadd(thumbtext, 'skin_thumbtext_', get(i));
  168. addlayer(get(thumbtext));
  169. layer[get(thumbtext)].loadstyle(skin_thumbtext_style);
  170. set(layer[get(thumbtext)].keep, true);
  171. set(layer[get(thumbtext)].parent, get(thumbname));
  172. set(layer[get(thumbtext)].html, get(scene[get(groupscenes[get(i)].value)].grouptitle));
  173. );
  174. txtadd(thumbnamebg,'skin_thumb_',get(i),bg);
  175. addlayer(get(thumbnamebg));
  176. set(layer[get(thumbnamebg)].type, container);
  177. set(layer[get(thumbnamebg)].bgcolor, 0x000000);
  178. set(layer[get(thumbnamebg)].bgalpha, 0.3);
  179. set(layer[get(thumbnamebg)].zorder, 1);
  180. set(layer[get(thumbnamebg)].keep, true);
  181. set(layer[get(thumbnamebg)].parent, 'skin_thumbs');
  182. set(layer[get(thumbnamebg)].align, lefttop);
  183. copy(layer[get(thumbnamebg)].crop, thumbcrop);
  184. copy(layer[get(thumbnamebg)].width, thumbwidth);
  185. copy(layer[get(thumbnamebg)].height, thumbheight);
  186. mul(thumbx,i, thumbxoffset);
  187. add(thumbx, thumbpadding);
  188. copy(layer[get(thumbnamebg)].x, thumbx);
  189. copy(layer[get(thumbnamebg)].y, thumbpadding);
  190. );
  191. );
  192. skin_update_scene_infos();
  193. skin_updatescroll();
  194. </action>
  195. <action name="mskin_addthumbs">
  196. copy(thumbwidth, skin_settings.mthumbs_width);
  197. copy(thumbheight, skin_settings.mthumbs_height);
  198. copy(thumbpadding, skin_settings.mthumbs_padding);
  199. copy(thumbcrop, skin_settings.mthumbs_crop);
  200. add(thumbyoffset, thumbheight, thumbpadding);
  201. mul(thumbycenter, thumbyoffset, 0.5);
  202. mul(thumbbarheight, thumbyoffset, groupscenes.count);
  203. add(thumbbarheight, thumbpadding);
  204. add(thumbbarwidth, thumbpadding, thumbwidth);
  205. add(thumbbarwidth, thumbpadding);
  206. if(skin_settings.thumbs_scrollindicator,
  207. copy(layer[skin_thumbs_scrollindicator].y, thumbbarheight);
  208. add(thumbbarheight, layer[skin_thumbs_scrollindicator].height);
  209. );
  210. copy(layer[skin_thumbs].height, thumbbarheight);
  211. copy(layer[skin_thumbs].width, thumbbarwidth);
  212. mul(halfheight, thumbbarheight, 0.5);
  213. for(set(i,0), i LT groupscenes.count, inc(i),
  214. txtadd(thumbname,'skin_thumb_',get(i));
  215. addlayer(get(thumbname));
  216. if(isen,
  217. txtadd(layer[get(thumbname)].url, https://bigscene.4dage.com/panorama/img/ethumbs/,get(scene[get(groupscenes[get(i)].value)].name),.png);
  218. ,
  219. txtadd(layer[get(thumbname)].url, https://bigscene.4dage.com/panorama/img/thumbs/,get(scene[get(groupscenes[get(i)].value)].name),.png);
  220. );
  221. set(layer[get(thumbname)].keep, true);
  222. set(layer[get(thumbname)].parent, 'skin_thumbs');
  223. set(layer[get(thumbname)].align, top);
  224. copy(layer[get(thumbname)].crop, thumbcrop);
  225. copy(layer[get(thumbname)].width, thumbwidth);
  226. copy(layer[get(thumbname)].height, thumbheight);
  227. set(layer[get(thumbname)].zorder, 10);
  228. mul(thumby,i, thumbyoffset);
  229. add(thumby, thumbpadding);
  230. copy(layer[get(thumbname)].x, thumbpadding);
  231. copy(layer[get(thumbname)].y, thumby);
  232. add(scene[get(i)].thumby, thumby, thumbycenter);
  233. copy(scene[get(i)].thumbx, thumbpadding);
  234. set(layer[get(thumbname)].linkedscene, get(groupscenes[get(i)].value) );
  235. set(layer[get(thumbname)].onclick, txtadd(layer[skin_thumbborder].parent, get(name),bg); skin_showthumbs(false); loadscene(get(linkedscene),null,get(skin_settings.loadscene_flags),get(skin_settings.loadscene_blend));skin_update_scene_infos(); );
  236. if(skin_settings.tooltips_thumbs,
  237. set(layer[get(thumbname)].tooltip, get(scene[get(groupscenes[get(i)].value)].title) );
  238. layer[get(thumbname)].loadstyle(skin_tooltips);
  239. );
  240. if(skin_settings.thumbs_text,
  241. txtadd(thumbtext, 'skin_thumbtext_', get(i));
  242. addlayer(get(thumbtext));
  243. layer[get(thumbtext)].loadstyle(skin_thumbtext_style);
  244. set(layer[get(thumbtext)].keep, true);
  245. set(layer[get(thumbtext)].parent, get(thumbname));
  246. set(layer[get(thumbtext)].html, get(scene[get(groupscenes[get(i)].value)].grouptitle));
  247. );
  248. txtadd(thumbnamebg,'skin_thumb_',get(i),bg);
  249. addlayer(get(thumbnamebg));
  250. set(layer[get(thumbnamebg)].type, container);
  251. set(layer[get(thumbnamebg)].bgcolor, 0x443a33);
  252. set(layer[get(thumbnamebg)].bgalpha, 1);
  253. set(layer[get(thumbnamebg)].zorder, 1);
  254. set(layer[get(thumbnamebg)].keep, true);
  255. set(layer[get(thumbnamebg)].parent, 'skin_thumbs');
  256. set(layer[get(thumbnamebg)].align, lefttop);
  257. copy(layer[get(thumbnamebg)].crop, thumbcrop);
  258. copy(layer[get(thumbnamebg)].width, thumbwidth);
  259. copy(layer[get(thumbnamebg)].height, thumbheight);
  260. mul(thumby,i, thumbyoffset);
  261. add(thumby, thumbpadding);
  262. copy(layer[get(thumbnamebg)].x, thumbpadding);
  263. copy(layer[get(thumbnamebg)].y, thumby);
  264. );
  265. </action>
  266. <action name="skin_updatescroll">
  267. if(layer[skin_thumbs].loaded,
  268. set(cursceneindex, 0);
  269. if(xml.scene, copy(cursceneindex, scene[get(xml.scene)].index));
  270. layer[skin_thumbs].setcenter(get(scene[get(cursceneindex)].thumbx), get(scene[get(cursceneindex)].thumby));
  271. );
  272. </action>
  273. <action name="skin_updatethumbscroll">
  274. copy(padding,skin_settings.thumbs_padding);
  275. if(skin_settings.thumbs_scrollbuttons,
  276. if(loverflow GT 0, set(layer[skin_thumbs_scrollleft].visible,true), set(layer[skin_thumbs_scrollleft].visible,false) );
  277. if(roverflow GT 0, set(layer[skin_thumbs_scrollright].visible,true), set(layer[skin_thumbs_scrollright].visible,false) );
  278. );
  279. if(skin_settings.thumbs_scrollindicator,
  280. if(woverflow GT 0,
  281. set(layer[skin_thumbs_scrollindicator].visible,true);
  282. sub(iw,pixelwidth,woverflow);
  283. div(pw,iw,pixelwidth);
  284. div(px,loverflow,woverflow);
  285. mul(pw,iw);
  286. copy(layer[skin_thumbs_scrollindicator].width,pw);
  287. sub(iw,pw);
  288. sub(iw,padding);
  289. sub(iw,padding);
  290. mul(px,iw);
  291. add(px,padding);
  292. copy(layer[skin_thumbs_scrollindicator].x,px);
  293. ,
  294. set(layer[skin_thumbs_scrollindicator].visible,false);
  295. );
  296. );
  297. </action>
  298. <action name="skin_update_scene_infos">
  299. if(xml.scene !== null AND scene[get(xml.scene)].index GE 0,
  300. if(skin_settings.thumbs_loop == false,
  301. if(scene[get(xml.scene)].index GT 0,
  302. set(layer[skin_btn_prev].enabled, true);
  303. set(layer[skin_btn_prev].alpha, 1.0);
  304. ,
  305. set(layer[skin_btn_prev].enabled, false);
  306. set(layer[skin_btn_prev].alpha, 0.3);
  307. );
  308. sub(lastsceneindex, scene.count, 1);
  309. if(scene[get(xml.scene)].index LT lastsceneindex,
  310. set(layer[skin_btn_next].enabled, true);
  311. set(layer[skin_btn_next].alpha, 1.0);
  312. ,
  313. set(layer[skin_btn_next].enabled, false);
  314. set(layer[skin_btn_next].alpha, 0.3);
  315. );
  316. ,
  317. if(scene.count GT 1,
  318. set(layer[skin_btn_prev].enabled, true);
  319. set(layer[skin_btn_prev].alpha, 1.0);
  320. set(layer[skin_btn_next].enabled, true);
  321. set(layer[skin_btn_next].alpha, 1.0);
  322. ,
  323. set(layer[skin_btn_prev].enabled, false);
  324. set(layer[skin_btn_prev].alpha, 0.3);
  325. set(layer[skin_btn_next].enabled, false);
  326. set(layer[skin_btn_next].alpha, 0.3);
  327. );
  328. );
  329. if(scene.count GT 1,
  330. set(layer[skin_btn_prev_fs].visible, true);
  331. set(layer[skin_btn_next_fs].visible, true);
  332. ,
  333. set(layer[skin_btn_prev_fs].visible, false);
  334. set(layer[skin_btn_next_fs].visible, false);
  335. );
  336. subtxt(newscenenamep,get(scene[get(xml.scene)].name),6,5);
  337. initmap(get(newscenenamep));
  338. set(tumindex,0);
  339. for(set(i,0), i LT groupscenes.count, inc(i),
  340. subtxt(newscenenamep2,get(groupscenes[get(i)].value),6,5);
  341. if(newscenenamep == newscenenamep2,
  342. set(tumindex,get(groupscenes[get(i)].index));
  343. );
  344. );
  345. txtadd(parentname, 'skin_thumb_', get(tumindex));
  346. if(layer[get(parentname)],
  347. txtadd(parentbg,get(parentname),bg);
  348. if(layer[skin_thumbborder].parent == get(parentbg),,
  349. set(layer[skin_thumbborder].parent, get(parentbg));
  350. set(layer[skin_thumbborder].visible, true);
  351. mini_startup();
  352. nexttick(mini_update_scene_infos);
  353. );
  354. ,
  355. set(layer[skin_thumbborder].visible, false);
  356. );
  357. );
  358. </action>
  359. <action name="skin_gotoscene">
  360. if(scene[%1],
  361. copy(cursceneindex, scene[get(xml.scene)].index);
  362. copy(newsceneindex, scene[%1].index);
  363. txtadd(layer[skin_thumbborder].parent, 'skin_thumb_', get(newsceneindex),bg);
  364. layer[skin_thumbs].scrolltocenter(get(scene[get(newsceneindex)].thumbx), get(scene[get(newsceneindex)].thumby));
  365. loadscene(get(scene[get(newsceneindex)].name),null,get(skin_settings.loadscene_flags),calc(newsceneindex LT cursceneindex ? skin_settings.loadscene_blend_prev : (newsceneindex GT cursceneindex ? skin_settings.loadscene_blend_next : skin_settings.loadscene_blend)));
  366. );
  367. </action>
  368. <action name="skin_nextscene">
  369. add(newsceneindex, scene[get(xml.scene)].index, %1);
  370. if(newsceneindex GE 0 AND newsceneindex LT scene.count,
  371. txtadd(layer[skin_thumbborder].parent, 'skin_thumb_', get(newsceneindex),bg);
  372. layer[skin_thumbs].scrolltocenter(get(scene[get(newsceneindex)].thumbx), get(scene[get(newsceneindex)].thumby));
  373. loadscene(get(scene[get(newsceneindex)].name),null,get(skin_settings.loadscene_flags),calc(%1 LT 0 ? skin_settings.loadscene_blend_prev : skin_settings.loadscene_blend_next));
  374. );
  375. </action>
  376. <action name="nav_control">
  377. if(xml.scene == scene_01,set(layer[btn7].crop,136|20|96|96); set(layer[mbtn7].crop,136|20|96|96);,set(layer[btn7].crop,20|20|96|96);set(layer[mbtn7].crop,20|20|96|96);)
  378. </action>
  379. <action name="skin_nextscene_loop">
  380. add(newsceneindex, scene[get(xml.scene)].index, %1);
  381. sub(lastsceneindex, scene.count, 1);
  382. if(newsceneindex LT 0, copy(newsceneindex,lastsceneindex));
  383. if(newsceneindex GT lastsceneindex, set(newsceneindex,0));
  384. layer[skin_thumbs].scrolltocenter(get(scene[get(newsceneindex)].thumbx), get(scene[get(newsceneindex)].thumby));
  385. loadscene(get(scene[get(newsceneindex)].name),null,get(skin_settings.loadscene_flags),calc(%1 LT 0 ? skin_settings.loadscene_blend_prev : skin_settings.loadscene_blend_next));
  386. </action>
  387. <action name="skin_showloading">
  388. if(display.stereo == true,
  389. set(layer[skin_loadingtext].visible, false);
  390. ,
  391. set(layer[skin_loadingtext].visible, %1);
  392. );
  393. </action>
  394. <action name="skin_hidetooltips">
  395. set(layer[skin_tooltip].alpha,0.0);
  396. set(layer[skin_tooltip].visible,false);
  397. </action>
  398. <action name="skin_buttonglow">
  399. if('%1' !== 'null',
  400. set(strength,0.7);
  401. if(%2 != null, set(strength,%2));
  402. set(layer[skin_buttonglow].parent, %1);
  403. set(layer[skin_buttonglow].visible, true);
  404. tween(layer[skin_buttonglow].alpha, get(strength), 0.07);
  405. ,
  406. tween(layer[skin_buttonglow].alpha, 0.0, 0.1, default,
  407. set(layer[skin_buttonglow].parent, null);
  408. set(layer[skin_buttonglow].visible, false);
  409. );
  410. );
  411. </action>
  412. <action name="skin_calc_opened_closed">
  413. set(layer[get(name)].y_opened, get(layer[get(name)].y));
  414. set(layer[get(name)].y_closed, calc(layer[get(name)].y - skin_settings.controlbar_offset - skin_settings.controlbar_height + skin_settings.controlbar_offset_closed));
  415. </action>
  416. <action name="skin_hideskin">
  417. if(layer[skin_map].state != 'closed', skin_showmap(false); wait(0.40); );
  418. if(layer[skin_thumbs].state != 'closed', skin_showthumbs(false); wait(0.25); );
  419. set(hidetime, calc('%1' == 'instant' ? 0.0 : 0.5));
  420. tween(layer[skin_scroll_window].y, get(layer[skin_scroll_window ].y_closed), get(hidetime));
  421. tween(layer[skin_splitter_bottom].y, get(layer[skin_splitter_bottom].y_closed), get(hidetime));
  422. tween(layer[skin_control_bar].y, get(layer[skin_control_bar ].y_closed), get(hidetime));
  423. tween(layer[skin_btn_prev_fs].x, 0, get(hidetime));
  424. tween(layer[skin_btn_next_fs].x, 0, get(hidetime));
  425. if(layer[skin_logo], tween(layer[skin_logo].alpha, 0.0, 0.5, default, set(layer[skin_logo].visible,false)); );
  426. stopdelayedcall(skin_btn_show_alpha);
  427. set(layer[skin_btn_show].visible, true);
  428. delayedcall(skin_btn_show_alpha, get(hidetime), tween(layer[skin_btn_show].alpha, 0.25, 0.25); );
  429. </action>
  430. <action name="skin_showthumbs">
  431. if(%1 == null, if(layer[skin_thumbs].state == 'closed', set(show,true), set(show,false)); , set(show,%1); );
  432. mul(mh, layer[skin_scroll_layer].pixelheight, -1);
  433. if(show,
  434. set(layer[btn1].crop,136|252|96|96);set(layer[mbtn1].crop,136|252|96|96);
  435. set(layer[skin_thumbs].state, 'opened');
  436. tween(layer[skin_thumbs].alpha, 1.0, 0.25);
  437. add(mh, layer[skin_thumbs].height);
  438. add(mh, layer[skin_scroll_layer].y_offset);
  439. tween(layer[skin_scroll_layer].y, get(mh), 0.5, easeOutQuint);
  440. set(layer[skin_thumbs_container].visible, true);
  441. tween(layer[skin_thumbs_container].alpha, 1.0, 0.25);
  442. tween(layer[skin_map].alpha, 0.0, 0.25, default, set(layer[skin_map].visible,false));
  443. ,
  444. set(layer[btn1].crop,20|252|96|96);set(layer[mbtn1].crop,20|252|96|96);
  445. set(layer[skin_thumbs].state, 'closed');
  446. tween(layer[skin_thumbs].alpha, 0.0, 0.25, easeOutQuint);
  447. add(mh, layer[skin_scroll_layer].y_offset);
  448. tween(layer[skin_scroll_layer].y, get(mh), 0.5, easeOutQuint, set(layer[skin_thumbs_container].visible, false););
  449. );
  450. </action>
  451. <action name="skin_showmap">
  452. if(%1 == null, if(layer[skin_map].state == 'closed', set(show,true), set(show,false)); , set(show,%1); );
  453. mul(mh, layer[skin_scroll_layer].pixelheight, -1);
  454. if(show,
  455. tween(layer[skin_thumbs_container].alpha, 0.0, 0.25, default, set(layer[skin_thumbs_container].visible,false));
  456. set(layer[skin_map].visible, true);
  457. tween(layer[skin_map].alpha, 1.0, 0.25);
  458. set(layer[skin_map].state, 'opened');
  459. sub(hh,area.pixelheight,skin_settings.controlbar_offset);
  460. sub(hh,layer[skin_control_bar].height);
  461. sub(hh,32);
  462. add(mh,hh);
  463. sub(hh,skin_settings.controlbar_overlap);
  464. copy(layer[skin_map].height, hh);
  465. tween(layer[skin_scroll_layer].y, get(mh), 0.5, easeOutQuint);
  466. ,
  467. if(layer[skin_map].state != 'closed',
  468. set(layer[skin_map].state, 'closed');
  469. add(mh, layer[skin_scroll_layer].y_offset);
  470. tween(layer[skin_map].alpha, 0.0, 0.5, easeOutQuint);
  471. tween(layer[skin_scroll_layer].y, get(mh), 0.5, easeOutQuint, set(layer[skin_map].visible,false) );
  472. );
  473. );
  474. </action>
  475. <action name="skin_keydown_event">
  476. if(keycode == 33, skin_nextscene_loop(-1) ); <!-- Page Up - previous scene -->
  477. if(keycode == 34, skin_nextscene_loop(+1) ); <!-- Page Dowm - next scene -->
  478. if(keycode == 35, skin_gotoscene(calc(scene.count-1)) ); <!-- End - last scene -->
  479. if(keycode == 36, skin_gotoscene(0) ); <!-- Home/Pos1 - first scene -->
  480. nav_control();
  481. </action>
  482. <action name="skin_deeplinking_update_url">
  483. if(skin_settings.deeplinking AND (!webvr OR webvr.isenabled === false),
  484. copy(adr, browser.location);
  485. indexoftxt(qi, get(adr), '?');
  486. if(qi GT 0, subtxt(adr, adr, 0, get(qi)));
  487. copy(si, scene[get(xml.scene)].index);
  488. copy(h, view.hlookat);
  489. copy(v, view.vlookat);
  490. copy(f, view.fov);
  491. copy(d, view.distortion);
  492. copy(a, view.architectural);
  493. clamp(d, 0.0, 1.0);
  494. clamp(a, 0.0, 1.0);
  495. set(pp, calc(f LT 10 ? 6 : 2));
  496. roundval(h, get(pp));
  497. roundval(v, get(pp));
  498. roundval(f, get(pp));
  499. roundval(d, 2);
  500. roundval(a, 1);
  501. set(adr, calc(adr + '?startscene=' + si + '&amp;startactions=lookat('+h+','+v+','+f+','+d+','+a+');'));
  502. js( history.replaceState(null, document.title, get(adr)); );
  503. );
  504. </action>
  505. </krpano>