index.html 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. <style>
  8. * {
  9. padding: 0;
  10. margin: 0;
  11. }
  12. #mousepos {
  13. position: fixed;
  14. top: 100px;
  15. left: 100px;
  16. color: #fff;
  17. width: 100px;
  18. height: 100px;
  19. z-index: 1;
  20. background: rgba(0, 0, 0, 0.5);
  21. }
  22. </style>
  23. </head>
  24. <body>
  25. <div id="pano" style="width: 100vw; height: 100vh" onclick="track_mouse()"></div>
  26. <div id="mousepos" onclick="track_mouse()"></div>
  27. </body>
  28. <script src="./plugins/tour.js"></script>
  29. <script>
  30. let krpano = null;
  31. embedpano({ xml: "./tour.xml", target: "pano", id: "krpanoSWFObject", passQueryParameters: true, onready: krpano_onready_callback });
  32. window.hover = function () {
  33. console.error("hover");
  34. };
  35. window.over = function () {
  36. console.error("over");
  37. };
  38. function krpano_onready_callback(krpano_interface) {
  39. krpano = krpano_interface;
  40. window.krpano = krpano;
  41. // console.error(krpano);
  42. setTimeout(() => {
  43. krpano.set("autorotate.enabled", false);
  44. }, 1000);
  45. // 监听鼠标移动事件;
  46. // krpano.addAction(function (action) {
  47. // if (action.event == "MOUSE_MOVE") {
  48. // // 获取鼠标的水平和垂直角度
  49. // var ath = krpano.get("mouse.x") - krpano.get("layer.width") / 2;
  50. // var atv = krpano.get("mouse.y") - krpano.get("layer.height") / 2;
  51. // // 输出或处理ath和atv值
  52. // console.log("ath:", ath, "atv:", atv);
  53. // }
  54. // });
  55. console.error(krpano);
  56. }
  57. // 场景跳转 index:0,1,2
  58. var track_mouse_enabled = false;
  59. var track_mouse_interval_id = null;
  60. function track_mouse_interval_callback() {
  61. var mx = krpano.get("mouse.x");
  62. var my = krpano.get("mouse.y");
  63. var pnt = krpano.screentosphere(mx, my);
  64. var h = pnt.x;
  65. var v = pnt.y;
  66. // document.getElementById("mousepos").innerHTML = 'x="' + mx + '" y="' + my + '" ath="' + h.toFixed(2) + '" atv="' + v.toFixed(2) + '"';
  67. console.error('x="' + mx + '" y="' + my + '" ath="' + h.toFixed(2) + '" atv="' + v.toFixed(2) + '"');
  68. }
  69. function track_mouse() {
  70. // var krpano = document.getElementById("krpanoSWFObject");
  71. console.error(krpano.get("hotspot[eee]"));
  72. krpano.set("autorotate.enabled", false);
  73. krpano.call("hotspotClicked");
  74. track_mouse_interval_callback();
  75. // if (krpano) {
  76. // if (track_mouse_enabled == false) {
  77. // // enable - call 60 times per second
  78. // track_mouse_interval_id = setInterval(track_mouse_interval_callback, 1000.0 / 60.0);
  79. // track_mouse_enabled = true;
  80. // } else {
  81. // // disable
  82. // clearInterval(track_mouse_interval_id);
  83. // document.getElementById("mousepos").innerHTML = "";
  84. // track_mouse_enabled = false;
  85. // }
  86. // }
  87. }
  88. </script>
  89. </html>