krpano调用js的含有参数的方法

来源:互联网 发布:铸造模拟分析软件 编辑:程序博客网 时间:2024/06/13 10:58
            krpano为我们提供了三种JavaScript的接口,分别是set,get和call。已经有很多这方面的介绍,不做详解。如果要传js的函数到krpano中调用,也可以用call和set的方式,如:

 

krpano.set("hotspot[" layer "].onclick", "js(text_recall();)");

             这是为热点添加一个点击事件,事件是写在js代码中的,需要用到krpano提供的“js()”方法来引用这个你要传js的方法。这样写对于不含参数的js方法是可行的;但是如果是含参数的,而且你要传入的参数还是在js代码中声明的,那么就会遇到一系列的问题。

             这时要用到krpano和js的交互了,参考http://www.krpano360.com/waibu_javascriptjiekouactionshuomingwendang-jsfscommand/

        

jsget(variable,..JavaScript code..)
         获取JavaScript变量的值,并将其存到变量variable中,如果变量名不存在,则创建一个变量。


         所以,我们就可以先将js中的变量传到krpano中,再在krpano中调用,这样就不会存在变量不存在等一些古怪的问题了。

如:

这是我在js中声明的一个加载热点的函数,需要传入读取出的json格式的字符串。

function loadhotspot(jsontext) {    var name=krpano.get("xml.scene");    for (var i = 0; i < jsontext.length; i++) {          。。。。。        }}
我要在全景的场景变换的时候调用这个函数,那么就需要将读取的jsontext传到krpano中,再调用:

krpano.call("jsget(jsontext,'jsontext1')");//传进krpanovar xml = '<events onloadcomplete="js(loadhotspot(get(jsontext)))"/>';krpano.call("loadxml(" + xml + ");loadscene(scene_1);");

这样就解决了传递值,调用含参函数的问题。



原创粉丝点击