首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Javascript从KRPANO检索热点

如何使用Javascript从KRPANO检索热点
EN

Stack Overflow用户
提问于 2016-03-01 18:08:25
回答 2查看 3.8K关注 0票数 1

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

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

KRPANO片段:

代码语言:javascript
运行
复制
<hotspot name="spot0" style="hotspot_ani_white" ath="-25" atv="-10" />   
<hotspot name="spot1" style="hotspot_ani_white" ath="-25" atv="-10" />

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

代码语言:javascript
运行
复制
$(function() {

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

});

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-16 15:02:03

你离它很近。但我不确定你能不能得到你写的元素。

首先,您应该将KRPano插件作为对象,而不是HTML元素:

代码语言:javascript
运行
复制
    var myKRPano = $('#krpanoSWFObject'); // First way, no need of "[0]"
    var otherKRPano = document.getElementById("krpanoSWFObject"); // Another way

现在您有了JS对象,只需调用"get“方法即可。但是您应该知道"get()“执行内部代码:因此您必须将请求放置为字符串!例如,使用您自己的代码:

代码语言:javascript
运行
复制
    var spotname = "spot0";
    var query = "hotspot['"+spotname+"']"; // i.e. "hotspot['spot0']"
    var myHotspot = myKRPano.get(query); // or myKRPano.get("hotspot['spot0']");

这将为您提供如下内容:

代码语言:javascript
运行
复制
    Object { _type="hotspot",  DATA={...},  plugin={...},  plus...}

从那里,你可以要求

代码语言:javascript
运行
复制
    > myHotspot.atv
      -10.5868612
    > myHotspot.name
      "spot0"

使用KRPano时,不要犹豫为浏览器使用调试工具,作为一般建议。然后,您可以直接尝试您的代码,并得到问题。如果这样做,您将看到"$('#krpanoSWKObject').get()“被设置,而”$(‘krpanoSWKObject’).get()“则没有设置。:)

致以敬意,

票数 1
EN

Stack Overflow用户

发布于 2016-03-03 13:54:28

你应该怎么做才能得到热点?

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

在javascript文件中,获取热点的athatv属性,并返回一个数组。

代码语言:javascript
运行
复制
function getspotcoords(ath,atv){
  var spotcoords = [ath,atv];
  return spotcoords
}

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

代码语言:javascript
运行
复制
<hotspot name="myhotspot" onclick="myaction"/>

<action name="myaction">

  //js() method is required!
  js(getspotcoords(get(hotspot[0].ath), get(hotspot[0].atv)));

</action>

您可以以同样的方式获得热点本身,并将其存储在javascriptfile中的一个变量中。希望它能成功!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35730210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档