krpano中xml与js交互,jsget的应用

在krpano的研究调查中,我们难免遇到 与js 交互的地方. 最近我就遇到了一个.

jsget 应用
目的是想控制,在一些场景的缩略图导航中,隐藏掉默认的 那一串数字的命名.
但是由于 krpano xml中 action的功能限制,很多工作都要放到 js里面去操作.
于是就查询文档找到了jsget 这个函数.
可以去官方的文档查看jsget
以下是官方文档的例子.
Get the address of the current webpage:
jsget(ret, ‘location.href’);
trace(‘location=’, get(ret));
Let the user enter something:
jsget(passwort, ‘prompt(“Enter Password”)’);
if(password == ‘hidden’, …);
Get the current date in the format YYYY-MM-DD:
jsget(date, ‘new Date().toISOString().slice(0,10);’);
trace(‘date=’, get(date));

根据krpano 官方文档,很快的我们就尝试了
jsget(passwort, ‘prompt(“Enter Password”)’);
if(password == ‘hidden’, …);
这样,根据js 判断 全景标题的返回值,很快就能做成开关,是否显示缩略图标题的问题.

但是问题来了.当使用jsget的时候,krpano的版本必须满足 1.1.9以上.
krpano官方论坛

当你以为 jsget(isnum,‘checkThumbTitle("’+get(scene[get(i)].title)+’")’); 于是很容易写出这样的入参方式.
当你调试的时候你会发现,无论你怎么调整 单引号,双引号,都会默认成参数的一部分.或者不执行.

最后实现的方式,在这里直接贴出来.感谢"网络游子","斯蒂芬"的帮助,最终写出了一下的代码.成功实现!

//这步可以省略
set(isnan, get(scene[get(i)].title));
//拼接字符串
txtadd(isnans, ‘checkThumbTitle("’,get(isnan),’")’);
传入参数
jsget(isnum,get(isnans));

isnum 就是作为了 js函数checkThumbTitle的返回值.这样,我们就实现了,一些复杂的校验.通过js 处理并返回给 xml action.

这里是简单的校验了,场景的名称.是 数字的部分,返回false 也就是我们要隐藏. 不是数字的部分,编辑过的场景名称,就正常显示.

//js部分的代码,隐藏数字缩略图title yaodeyan
function checkThumbTitle(title){
if(isNaN(title)){
return true;
}else{
return false;
}
}

	if(isnum,
		txtadd(thumb_image_title_con,'thumb_image_title_con_',get(i)); addlayer(get(thumb_image_title_con));
        layer[get(thumb_image_title_con)].loadstyle(thumb_image_title_container);
		set(layer[get(thumb_image_title_con)].parent, get(thumb_image_name));
		txtadd(thumb_image_title_word,'thumb_image_title_word_',get(i)); addlayer(get(thumb_image_title_word));
		set(layer[get(thumb_image_title_word)].html, get(scene[get(i)].title));
        layer[get(thumb_image_title_word)].loadstyle(thumb_image_title_word);
		set(layer[get(thumb_image_title_word)].parent, get(thumb_image_title_con));
	);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值