如何使用 Javascript 从 KRPANO 检索热点
How to retrieve hotspot from KRPANO using Javascript
我不想使用 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" />
外部 javascript 文件通过 index.html 加载:
$(function() {
var krpano = $('#krpanoSWFObject')[0];
var spotName = 'spot0';
curSpot = krpano.get(hotspot[spotName]);
console.log(curSpot)
});
欢迎任何帮助。提前致谢!
获取热点有什么用?
如果需要通过javascript获取热点属性可以在xml 标签中调用js方法获取属性直接来自 xml 热点:
in the javascript file, gets the ath and atv attributes of a hotspot and
returns an array
function getspotcoords(ath,atv){
var spotcoords = [ath,atv];
return spotcoords
}
in the xml call the function in the < action /> tag, triggered when click on the hotspot
<hotspot name="myhotspot" onclick="myaction"/>
<action name="myaction">
//js() method is required!
js(getspotcoords(get(hotspot[0].ath), get(hotspot[0].atv)));
</action>
您可以用同样的方法获取热点本身,并将其存储在javascript文件中的一个变量中。
希望它有效!
你离它很近了。但是我不确定你能不能得到你写的元素。
首先,您应该将 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 调用从 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" />
外部 javascript 文件通过 index.html 加载:
$(function() {
var krpano = $('#krpanoSWFObject')[0];
var spotName = 'spot0';
curSpot = krpano.get(hotspot[spotName]);
console.log(curSpot)
});
欢迎任何帮助。提前致谢!
获取热点有什么用?
如果需要通过javascript获取热点属性可以在xml
in the javascript file, gets the ath and atv attributes of a hotspot and returns an array
function getspotcoords(ath,atv){
var spotcoords = [ath,atv];
return spotcoords
}
in the xml call the function in the < action /> tag, triggered when click on the hotspot
<hotspot name="myhotspot" onclick="myaction"/>
<action name="myaction">
//js() method is required!
js(getspotcoords(get(hotspot[0].ath), get(hotspot[0].atv)));
</action>
您可以用同样的方法获取热点本身,并将其存储在javascript文件中的一个变量中。 希望它有效!
你离它很近了。但是我不确定你能不能得到你写的元素。
首先,您应该将 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()”未设置。 :)
此致,