假设现在有那么一种情况,你拍了几套样板间,然后这十几个点(场景)都放在一个xml里,然后,这时候客户希望在能打开地址展示第一个场景的同时,还可以按照其需求通过打开网址直接看到其他场景,例如,打开网址直接就是卫生间(恶趣味的客户)。
以下方法适用于krpano 1.19 pr2及之前版本
我们不可能因为这样去调整文件中scene的位置,因为这样就需要很多个xml文件,同时又要生成很多个地址,占据服务器空间。我们只需要在原来的网页地址上做个小小手脚。
首先,我们先来看看默认皮肤中tour.xml有这么一个startup的action。
1 2 3 4 |
<action name="startup"> if(startscene === null, copy(startscene,scene[0].name)); loadscene(get(startscene), null, MERGE); </action> |
这个action的意义就是决定开始场景是哪一个,如果你什么都不做的话,那就是第一个场景,也就是scene[0]。我们给startscene赋值,也就是不让其为空。
我们打开tour.html,确保其中传递参数的属性为true。
embedpano({swf:”tour.swf”, xml:”tour.xml”, target:”pano”, passQueryParameters:true });
接下来就是给我们的链接地址进行传参的设置了。假设你有一个地址,前面,可能他最后的几个字符就是tour.html,那么我们可以在后面加一个?
http://krpano360.com/wp-content/uploads/krpano/demo/tour.html?startscene=1&start_hlookat=20&start_vlookat=0&start_fov=90
在线演示
这里我们用问号?来开始第一个参数,如果有更多的参数需要从HTML传递到xml中的话,用&来隔开。我们的第一个参数就是startscene,我们将某个scene的name传递进去了。我们可以直接写序号。例如?startscene=2,这样的话就是scene[2],也就是第三个场景作为startscene。在本例中我们就是直接写序号index。另外我们还可以传其他参数,只要中间用&隔开即可。例如,我们传递了跟视角相关的参数,然后在startup里进行处理。
1 2 3 4 5 6 7 |
<action name="startup"> if(startscene === null, set(startscene,0); ); loadscene(get(startscene)); ifnot(start_fov === null, copy(view.fov,start_fov); ); ifnot(start_hlookat === null, copy(view.hlookat,start_hlookat); ); ifnot(start_vlookat === null, copy(view.vlookat,start_vlookat); ); </action> |
在 “krpano网页地址链接到指定场景和视角(适用krpano 1.19 pr2以前版本)” 上有 1 条评论