如何使用Javascript从KRPANO检索热点

How to retrieve hotspot from KRPANO using Javascript

本文关键字:检索 热点 KRPANO 何使用 Javascript      更新时间:2023-09-26

我不想使用javascript调用从KRPANO检索热点。

使用以下内容,我检索未定义。

KRPANO XML 片段:

<hotspot name="spot0" style="hotspot_ani_white" ath="-25" atv="-10" />   
<hotspot name="spot1" style="hotspot_ani_white" ath="-25" atv="-10" />

通过 index.html 加载的外部 JavaScript 文件:

$(function() {
  var krpano = $('#krpanoSWFObject')[0];
  var spotName = 'spot0';
  curSpot = krpano.get(hotspot[spotName]);
  console.log(curSpot)
});

欢迎任何帮助。提前感谢!

你离它很近了。但我不确定你能在你写的时候得到这个元素。

首先,你应该将 KRPano 插件作为一个对象而不是 HTML DOM 元素来获取:

    var myKRPano = $('#krpanoSWFObject'); // First way, no need of "[0]"
    var otherKRPano = document.getElementById("krpanoSWFObject"); // Another way

现在你得到了你的JS对象,只需调用"get"方法。但是你应该知道"get()"执行内部代码:因此你必须把你的请求作为一个字符串!例如,使用您自己的代码:

    var spotname = "spot0";
    var query = "hotspot['"+spotname+"']"; // i.e. "hotspot['spot0']"
    var myHotspot = myKRPano.get(query); // or myKRPano.get("hotspot['spot0']");

这将为您提供如下内容:

    Object { _type="hotspot",  DATA={...},  plugin={...},  plus...}

从那里,您可以要求

    > myHotspot.atv
      -10.5868612
    > myHotspot.name
      "spot0"

在使用 KRPano 时,不要犹豫,为您的浏览器使用调试工具,作为一般建议。然后,您可以直接尝试代码并解决问题。如果这样做,你会看到设置了"$('#krpanoSWKObject').get()",而"$('#krpanoSWKObject')[0].get()"没有:)设置。

问候

你应该通过

获取热点做什么?

如果您需要通过javascript获取一些热点属性,则可以在xml<操作>标记中调用js方法,并直接从xml热点获取属性:

在 JavaScript 文件中,获取热点的 ATHATV 属性,以及 返回一个数组

function getspotcoords(ath,atv){
  var spotcoords = [ath,atv];
  return spotcoords
}

在 XML 调用 <操作 /> 标记中的函数,单击热点时触发

<hotspot name="myhotspot" onclick="myaction"/>
<action name="myaction">
  //js() method is required!
  js(getspotcoords(get(hotspot[0].ath), get(hotspot[0].atv)));
</action>

你可以用同样的方式获取热点本身,并将其存储在JavaScriptfile的变量中。希望它有效!