krpano Javascript接口Version 1.20.11
需要使用krpano Javascript-Interface object来获取从krpano到Javascript的权限。
可通过以下某种方式获取对象:
- 使用 embedding script 的 onready 回调函数(推荐方法)。
- 或通过Javascript 调用: document.getElementById(id)
id参数是viewer的唯一性id(默认为”krpanoSWFObject”)可在embedding script中进行设置。
krpano Javascript接口对象
接口对象提供以下JS函数:
- set(variable,value) – 将指定的数值赋值给指定的krpano变量。
- get(variable) – 返回指定krpano变量的数值。
- call(action) – 调用和执行任意krpano动作代码。
- spheretoscreen(h,v) – 直接调用spheretoscreen动作。
- screentosphere(x,y) – 直接调用screentosphere动作。
spheretoscreen / screentosphere函数返回一个带有x、y属性的对象。
使用JavaScript直接访问krpano(仅在HTML5下使用)
当不需要Flash支持时,可以使用下面的调用对krpano获取更直接的使用
1 |
krpano = krpano.get("global"); |
global对象是整个krpano API结构的根级别对象,调用后可以直接访问所有变量、对象和函数。对于性能而言,这将是使用krpano的最快方式。
使用案例(新)
使用krpano JavaScript接口访问(Flash和HTML5)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
embedpano({..., html5:"auto",onready:function(krpano) { var is_flash = krpano.get("device.flash"); ... krpano.set("view.hlookat", 40); krpano.set("view.vlookat", 30); krpano.set("view.fov", 120); krpano.call("loadpano(image.xml,null,MERGE|KEEPVIEW)"); ... krpano.call("addhotspot(spot1)"); krpano.set("hotspot[spot1].url", "spot.png"); krpano.set("hotspot[spot1].ath", 123.4); krpano.set("hotspot[spot1].atv", 12.3); krpano.set("hotspot[spot1].onclick", "loadpano(pano2.xml,null,MERGE,BLEND(0.5)"); }); |
直接访问(HTML5下)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
embedpano({..., html5:"only", onready:function(krpano) { krpano = krpano.get("global"); krpano.view.hlookat = 40; krpano.view.vlookat = 30; krpano.view.fov = 120; krpano.actions.loadpano('image.xml',null,'MERGE|KEEPVIEW'); ... var hs = krpano.addhotspot(); hs.url = "spot.png"; hs.ath = 123.4; hs.atv = 12.3; hs.onclick = function() { krpano.actions.loadpano('pano2.xml',null,'MERGE','BLEND(0.5)'); } }); |
使用案例(旧)
获取krpano HTML DOM对象 – 或是通过onready回调函数(推荐):
1 2 3 4 5 6 7 8 |
var krpano = null; embedpano({..., onready:krpano_onready_callback}); function krpano_onready_callback(krpano_interface) { krpano = krpano_interface; } |
或者使用document.getElementById(但注意,只有embedding已经完成的情况下才能工作)
1 |
var krpano = document.getElementById("krpanoSWFObject"); |
获取和设置一个变量:
1 2 3 |
var fov = Number( krpano.get("view.fov") ); fov += 10.0; krpano.set("view.fov", fov); |
调用krpano动作,例如载入一个全景。
1 |
krpano.call("loadpano('pano2.xml',null,MERGE,BLEND(1));"); |
在 “krpano Javascript接口说明文档” 上有 3 条评论