set动作完全解析

语法说明

set(variable, value)

将指定的variable赋予指定的value

参数:

  • variable
    • 变量名。
    • 若不存在则自动创建该变量。
  • value
    • 该变量的新数值。
    • 当变量已经存在,则数值将转换为该变量的类型。
    • 注意 – 当value为一个变量时,其数值无法自动解析!必须使用get(variable) 动作获得其数值。
ico-example 示例
set(var1, ‘hello’);
set(var2, get(var1));
set(fullscreen, true);
set(layer[p1].visible, false);
set(hotspot[h1].scale, 2.5);
set(contextmenu.item[0].caption, ‘hello item’);
set(events.onxmlcomplete, null);

 

详细解释

set是krpano最基本的action,其用法只有一种,就是将数值赋值给变量。我们直接来官网说明文档中给出的例子。

set就是两个参数,第一个参数是一个变量,可以是自定义的(例如上面的var1var2),也可以是krpano的全局变量(如fullscreen),或者某个数组名的元素(如layer[p1].visible)。

第二个参数就是要赋值给第一个参数的数值,注意这个参数必须是数值,如果你写的是一个变量,则必须使用get动作来获取该变量的数值,从而使得该数值顺利赋值给第一个参数。

这里有涉及到另一种情况,可能你在第二个参数中写了get,但get并不是第二个的参数的本身,如下:

你希望在动态设置这个onclick事件时,就马上可以获取到link的值,例如在set这个onclick时,link的值为’http://www.krpano360.com/’,你实际是要实现

然而,这种理解是错误的。因为get不是作为参数本身写进去的话,它实际上只是

这个数值的一部分,它是不能解析的。也就是说当onclick事件调用时,它就是执行

但这个时候,link可能已经是别的数值了,尤其是在使用循环为不同的元素赋属性时,就可能都是最后一个元素的link。

因此正确的方法如下,有三种:

使用txtadd是一种在1.19之前较常用的方法。

calc为1.19的语法,可以作为其它动作的一个参数,它会自动将link解析为其变量。

calc也可以作为单独的动作使用。

关于set动作总结如下: