actionname(parameters); ...
a OPERATOR b
(a OPERATOR b) OPERATOR (c OPERATOR d)
== | 等于 ( 非严格 ) |
!= | 不等于 ( 非严格 ) |
< 或 LT | 小于 * |
> 或 GT | 大于 * |
<= 或 LE | 小于或等于 * |
>= 或 GE | 大于或等于 * |
=== | 相等 ( 严格 ) |
!== | 不相等 ( 严格 ) |
|| 或 OR | 左边或右边的表达式需要是true实的 * |
&& 或 AND | 左边和右边的表达式需要是true实的 * |
! | 非运算符-反转Boolean变量 |
if ? then: else | 三元运算符 |
( ... ) | 嵌套运算符 |
+ | 加-数字相加或连接String |
- | 减 |
* | 乘 |
/ | 除 |
^ | 指数 |
<< 或 LSHT | 左移位 * |
>> 或 RSHT | 右移位 * |
BOR | 按位或 |
BAND | 按位和 |
XOR | 按位异或 |
<array_name name="item_name" value="..." />
array_name[item_name].value
变量名 | 类型 | 默认值 | |
global
local |
Object
Object |
||
---|---|---|---|
globalObject允许直接访问全局变量范围.
在 本地或layer/hotspot作用域代码中, 如果具有同名的变量已经定义了当前作用域, 则可以使用全局变量. 本地Object仅在 local范围action中可用, 并且允许直接访问当前的局部变量范围.这可用于确保在可能存在具有相同名称的全局变量时, 在局部范围内定义新变量. |
|||
变量名 (只读) | 类型 | 默认值 | |
version | String | "1.19-pr14" | |
krpano 版本信息. | |||
变量名 (只读) | 类型 | 默认值 | |
xmlversion | String | ||
xml 的
版本设置.
如果未设置, 这将与 krpano 版本String相同. |
|||
变量名 (只读) | 类型 | 默认值 | |
build | String | "2017-12-01" | |
krpano 生成日期String的格式为 "年月日". | |||
变量名 (只读) | 类型 | 默认值 | |
mouse.x
mouse.y mouse.stagex mouse.stagey mouse.downx mouse.downy mouse.clickx mouse.clicky |
int
int int int int int int int |
||
鼠标位置.
mouse.x和 mouse.y坐标相对于 area的左上边缘. stagex和 mouse.stagey坐标相对于整个舞台/屏幕/窗口的左上边缘. downx和 mouse.downy变量存储上次按下鼠标按钮的位置 (对于左右按钮).坐标本身相对于 area的左上边缘 . clickx和 mouse.clicky变量是特殊情况下的, 它们存储从 onsingleclick或 ondoubleclick事件发生的位置.坐标本身相对于 区域的左上边缘 . |
|||
变量名 (只读) | 类型 | 默认值 | |
keycode | int | 0 | |
最后按下或释放的键的不符.
不符值将在 onkeydown和 onkeyup事件中设置. 这里有一个小代码段来查找按下的键的不符: <events onkeydown="showlog(); trace('keycode=',keycode);" /> |
|||
变量名 (只读) | 类型 | 默认值 | |
wheeldelta
wheeldelta_raw wheeldelta_touchscale |
int
int int |
0
Number.NaN 0.0 |
|
鼠标滚轮旋转的辊三角洲.
这些变量将在 onmousewheel事件中设置.
|
|||
变量名 | 类型 | 默认值 | |
fullscreen | Boolean | false | |
fullscreen变量可用于检查或更改全屏模式的当前状态.当变量将被更改时, 全屏模式也将被更改.
示例-切换到全屏模式: onclick="set(fullscreen,true);"示例-在全屏和窗口模式之间切换: onclick="toggle(fullscreen);" 提示:
|
|||
变量名 (只读) | 类型 | 默认值 | |
stagewidth
stageheight |
int
int |
||
当前播放器窗口的大小 (以像素为单位).
在 onresize事件中获取这些大小. |
|||
变量名 (仅 HTML5) | 类型 | 默认值 | |
stagescale | Number | 1.0 | |
全局总体缩放设置.
stagescale 设置将缩放所有 krpano 元素和大小. 通过缩放所有元素, krpano 阶段大小 (屏幕大小/分辨率) 本身将由这个值反向缩放-例如, 值0.5 将将所有元素缩小 50%, 同时将内部阶段大小增加200%. 默认的 stagescale 值取决于设备,浏览器,Javascript 窗口.devicePixelRatio值.在台式机和平板浏览器上, 默认值通常为 1.0, 通常为0.5. 这意味着手机上的元素通常是桌面或平板电脑的一半大小.若要禁用该行为 (例如实现某些自定义响应布局), 可将此代码添加到第一个 xml 中: <action name="mobilescale" autorun="preinit" devices="mobile"> |
|||
变量名 (只读) | 类型 | 默认值 | |
browser.useragent
browser.platform browser.location browser.domain browser.protocol |
String
String String String String |
||
有关浏览器的信息.
|
|||
变量名 (只读) | 类型 | 默认值 | |
device.Flash
device.flashversion device.html5 device.desktop device.normal device.tablet device.mobile device.handheld device.css3d device.webgl device.multiressupport device.panovideosupport device.fullscreensupport device.pixelratio device.fractionalscaling device.mouse device.touch device.ios device.iosversion device.iphone device.ipod device.ipad device.android device.androidversion device.androidstock device.chrome device.chromemobile device.chromeversion device.firefox device.firefoxversion device.ie device.ieversion device.edge device.safari device.safariversion device.opera device.operaversion device.standalone device.windows device.mac device.linux |
Boolean
int Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean int Boolean Boolean Boolean Boolean int Boolean Boolean Boolean Boolean int Boolean Boolean Boolean int Boolean int Boolean int Boolean Boolean int Boolean int Boolean Boolean Boolean Boolean |
false
false false false false false false false false false false false 1.0 false false false false false false false false false false false false false false false false false false false false |
|
设备Object提供有关当前设备/系统的信息.它的动态/脚本等效于
xml
设备属性
.
可以随时通过脚本代码 (例如 if () action)检查 设备Object的属性/属性. 设备Object具有以下属性:
if(device.html5, ...); if(device.flash, ...); if(device.android, if(device.flash, ...); ); if(device.iOSversion GT 5.1, ...); |
|||
变量名 (只读) | 类型 | 默认值 | |
timertick | int | ||
timertick变量返回自播放器启动以来已经过的毫秒数 (1000 毫秒 = 1 秒). | |||
变量名 (只读) | 类型 | 默认值 | |
random | Number | 0.0-1.0 | |
random变量在范围0.0 到1.0 中返回一个随机数.
示例-如何在范围 1-10 中获取整数随机值: mul(val, random, 9); add(val, 1); roundval(val); trace('random value=',val); |
|||
变量名 | 类型 | 默认值 | |
hlookat_moveforce
vlookat_moveforce fov_moveforce |
int
int int |
0.0
0.0 0.0 |
|
这些变量可用于设置移动视图/全景的力.
他们的主要用途是键盘或按钮移动控制. 当将它们设置为0.0 以外的值时, 视图将开始缓慢加速 (由 keybaccelerate控制), 然后以最大速度移动 (由 控制.keybspeed控制), 直到它们被设置回 0.0, 然后 移动将减慢 (由 keybfriction 控制. ). |
|||
变量名 (只读) | 类型 | 默认值 | |
multireslevel | int | ||
multireslevel变量返回当前的多分辨率级别
(0-image.level.count). |
|||
变量名 | 类型 | 默认值 | |
lockmultireslevel | String | -1 | |
将自动多分辨率级别选择锁定到固定级别.
将 lockmultireslevel 设置为 "当前" 以将级别锁定到当前级别.要释放水平锁定集 lockmultireslevel 回到 "-1". |
|||
变量名 | 类型 | 默认值 | |
downloadlockedlevel | Boolean | false | |
如果设置为 true, 则将完全下载当前锁定的级别. | |||
变量名 | 类型 | 默认值 | |
progress.progress | Number | 0.0 | |
当前加载进度为线性值, 从0.0 到1.0.
它可用于创建自定义加载动画-例如, 使用 onxmlcomplete事件启动加载动画, 以及 onloadcomplete事件以停止它. |
|||
变量名 | 类型 | 默认值 | |
network.viewerpath
network.htmlpath network.firstxmlpath network.currentxmlpath |
String
String String String |
||
到多个位置的路径 (仅限路径, 不带文件名):
|
|||
变量名 (只读) | 类型 | 默认值 | |
xml.url | String | ||
xml.url变量包含当前加载的 xml 文件的路径/url. | |||
变量名 (只读) | 类型 | 默认值 | |
xml.content | String | ||
xml.content变量包含当前加载的 xml 文件的整个内容作为String.在使用 loadscene ()函数加载 < scene >之后, xml.content变量将只包含 < scene >元素的内容. | |||
变量名 (只读) | 类型 | 默认值 | |
xml.scene | String | ||
xml.scene变量包含当前加载的场景的名称. | |||
变量名 (只读) | 类型 | 默认值 | |
xml.view | Object | ||
在当前 xml 或场景中定义的初始
< view >元素中的值的备份.例如, 通过
xml.view.hlookat获取初始
view hlookat值 .
注意-只有 xml 中定义的值存储在此处, 没有默认值.这意味着在使用该Object的值之前, 必须检查这些变量是否实际存在-例如通过 if (xml.fov = = null,. ... |
|||
变量名 (只读) | 类型 | 默认值 | |
lasterror | String | ||
当发生错误时, lasterror变量包含最后一条错误消息.若要获取此变量, 必须使用 onloaderror事件. | |||
变量名 (只读) | 类型 | 默认值 | |
haveexternalinterface | Boolean | true | |
此变量可用于检查 Flashplayer 的外部接口是否可用.此接口对于
Javascript 接口和
openurl函数是必需的.
在服务器上联机该外部接口始终可用, 但仅在本地时才会在浏览器内打开 flash 文件, 当 flash swf 的文件夹位于 "受信任的文件夹" 中时.可在 Flashplayer 安全设置中质量管理受信任的文件夹, 请参阅此处了解更多 detatils- 本地/脱机使用情况 . |
|||
变量名 (只读) | 类型 | 默认值 | |
havenetworkaccess | Boolean | true | |
此变量可用于检查网络访问是否在 Flashplayer 中可用.这可以用来避免错误时, 试图使用像谷歌地图或 Bing 地图插件本地, 因为这些插件试图从网络加载数据, 所以需要网络访问.
在服务器上联机网络访问始终可用, 但仅当Flash swf 的文件夹位于 "受信任的文件夹" 中时才在本地.可在 Flashplayer 安全设置中质量管理受信任的文件夹, 请参阅此处了解更多 detatils- 本地/脱机使用情况 . |
def(variable, type, value*)
def(b, boolean, true);
def(n, number, 123.456);
def(s, string, 'text');
def(obj, object);
def(obj.x, number, 0.0);
def(obj.y, number, 0.0);
set(variable, value)
set(object, variable:type=value, variable:type=value, ...)
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(layer[p1], visible=false, alpha=0.5);
set(hotspot[hs1], type='text', ath=0.0, atv=0.0, html='Test Text', css='text-align:center', bg=false );
set(global, test='Test text', havesomething:boolean=true, var2:string=get(var1), value:number=calc(1 + 2*3) );
action( get(variable), ...)
array[ get(variable) ]
<xmlelement attribute="get:variable" .../>
set(dstvar, get(srcvar));
looktohotspot(get(name));
lookto(get(h), get(v), get(f));
showtext(get(msg));
tween(var,get(dstval));
set(pic, spot1); set(hotspot[get(pic)].visible, false);
trace('xyz=', xyz, ' get(xyz)=', get(xyz));
txtadd(msg, 'fov=', get(view.fov));
calc(variable, expression)
action( calc(expression), ...)
array[ calc(expression) ]
<xmlelement attribute="calc:expression" .../>
set(y_new, calc(y_old - offset1 + offset2));
set(animationtime, calc('%1' == 'instant' ? 0.0 : 0.5));
<layer url="calc:'%CURRENTXML%/skin/' + settings.image1" />
copy(destination, source, typeconversion*)
copy(dstvar, srcvar);
copy(cur_hlookat, view.hlookat);
copy(layer[text].x, mouse.x); copy(layer[text].y, mouse.y);
delete(variable, ...)
set(tmp1, ...); set(tmp2, ...); ...do something ... delete(tmp1, tmp2);
if(condition, then-actions, else-actions*)4个或更多参数调用:
if( condition, then-actions, else-if-condition, then-actions, else-if-condition, then-actions, ... else-actions )
if(fullscreen, fullscreensetup(), windowsetup() );
if(fullscreen, set(layer[controls].visible, false) );
if(i LT 10, loop(next) );
if(var === null, set(var,0));
if(hotspot[spot1] === null, trace(there is no spot1 hotspot));
if((varA GT 5) AND (varA LT 10), trace('varA is between 5 and 10') );
if(varA AND varB AND varC, trace('all vars are true') );
if(var1 GT var2, trace('condition is true'); lookto(100,20,50); , trace('condition is false'); lookto(0,0,100); );
if(a*2+b GT (c+3)*1.5 OR teststring == '123', ...);
if( test == 1, trace('test is 1'), test == 2, trace('test is 2'), test == 3, trace('test is 3'), trace('test is someting else') );
delayedcall(delay, actions)
delayedcall(id, delay, actions)
delayedcall(5.0, hidelogo() );
delayedcall(10, looktohotspot(spot1);loadpano(pano2.xml); );
delayedcall(1, showtext('hello'); ); delayedcall(4, showtext('to the pano'); );
<action name="updatemousepos"> copy(layer[cursor].x, mouse.x); copy(layer[cursor].y, mouse.y); delayedcall(0.02, updatemousepos() ); </action>
stopdelayedcall(id)
<events name="introimage_events" onnewpano="delayedcall(introimage, 5.0, hide_introimage() );" onremovepano="stopdelayedcall(introimage);" />
callwhen(condition, actions)
callwhen(plugin[video].loaded, plugin[video].playvideo(...); );
callwhen(plugin[maps].loaded, plugin[maps].setcenter(...); );
for(startactions, condition, nextactions, loopactions)
for(set(i,0), i LT 10, inc(i), trace('i=',i) );.
for(set(i,0), i LT layer.count, inc(i), trace('layer[',i,'].name=',layer[get(i)].name); );
loop(condition, loopactions)
asyncloop(condition, loopactions, doneactions*)
ondown="asyncloop(pressed, layer[scrollarea].scrollby(+2,0) );"
onover="asyncloop(hovering, updatemousepos(), hideinfo() );"
asyncloop(true, framehandler() );
setinterval(id, delay, actions)
clearinterval(id)
setinterval(time, 1.0, jsget(time, (new Date()).toLocaleTimeString(); ); trace('time=',time); );
<events onkeydown="setinterval(get(keycode), 0.1, trace(keycode); );" onkeyup="clearinterval(get(keycode));" />
toggle(variable)
toggle(fullscreen);
toggle(layer[button1].visible);
switch(variable)
switch(variable, value1, value2, ...)
switch(fullscreen);
switch(layer[button1].visible);
switch(layer[button1].alpha, 1.0, 0.5);
switch(layer[child].parent, button1, button2, button3);
switch(destpos, -100, 0, +100); tween(y,get(destpos));
callwith(caller, actions)
callwith(layer[test], onclick);
callwith(layer[test], trace('test pos=',x,'/',y); );
callwith(layer[test], tween(alpha, 0.0); );
scope(scope, actions)
scope(localonly, for(set(i,0), i LT 10, inc(i), trace(i)); );
scope(private:myplugin, trace(plugin_internal_var); );
parentscopeset(variable, value)
copyattributes(destobject, srcobject)
copyattributes(get(layer[test]), get(style[style1]));
events.dispatch(eventname, instantly*)
<events name="events1" myevent="trace(events1...);" /> <events name="events2" myevent="trace(events2...);" /> ... events.dispatch(myevent);
add(variable, valueA, valueB*)
sub(variable, valueA, valueB*)
mul(variable, valueA, valueB*)
div(variable, valueA, valueB*)
mod(variable, valueA, valueB*)
pow(variable, valueA, valueB*)
set(val, 1); add(val, 1); trace('val should be 2: val=',val);
mul(doublewidth, width, 2.0);
mul(scale, 0.5);
div(result, vala, valb);
add(dst,rotate,360); tween(rotate,get(dst),5);
add(xpos, mouse.x, mouse_x_offset);
sub(destx, stagewidth, destwidth);
div(aspect,16,9);
mod(cur_hlookat,cur_hlookat,360);
pow(sqrt,val,0.5);
inc(variable, byvalue*, max*, min*)
dec(variable, byvalue*, min*, max*)
inc(i);
inc(frame,1,get(lastframe),0);
inc(ypos,30);
inc(view.hlookat, 2, 90, 90);
clamp(variable, min, max)
clamp(percent, 0, 100);
screentolayer(bar, mouse.stagex,mouse.stagey, lx,ly);
div(fill, lx, layer[bar].pixelwidth);
mul(fill, 100);
clamp(fill, 0, 100);
txtadd(layer[barfill].width, get(fill), '%');
Math.*
roundval(variable, decimalplaces*)
roundval(destinationvariable, variable, decimalplaces)
roundval(val);
roundval(val, 2);
roundval(hlookat_print, view.hlookat, 2);
copy(cur_hlookat,view.hlookat); mod(cur_hlookat,360); roundval(cur_hlookat,2); copy(cur_vlookat,view.vlookat); roundval(cur_vlookat,2); txtadd(msg,'looking at ',get(cur_hlookat),'/',get(cur_vlookat));
tohex(variable, prefix*, length*)
tohex(destinationvariable, variable, prefix, length)
tohex(color,'#',6);
set(color, ...an_external_integer_input...);
tohex(color,'#',6);
txtadd(layer[text1].css,'color:',get(color),';');
tolower(variable)
toupper(variable)
tolower(destinationvariable, sourcevariable)
toupper(destinationvariable, sourcevariable)
txtadd(destination, txt1, txt2*, txt3*, ...)
txtadd(picfilename,'%CURRENTXML%/pic_',get(pic),'.jpg');
txtadd(crop,'0|',get(ypos),'|333|285');
txtadd(pname, 'thumbbar_image_', get(i));
txtadd(layer[text].html,'[p]',get(data[txt1].content),'[/p]');
txtadd(msg,get(view.fovtype),'=',get(fov),'°');
subtxt(dstvar, srcvar, startpos, len)
indexoftxt(index, txt, searchtxt, startindex*)
txtreplace(var, searchtext, replacetext)
txtreplace(dstvar, srcvar, searchtext, replacetext)
txtsplit(string, separator, resultingarray)
txtsplit(string, separator, var1, var2, ...)
txtsplit('1|2|3', '|', a, b, c);结果:
trace('a=',get(a), ' b=',get(b), ' c=',get(c));
a=1 b=2 c=3
txtsplit('x|y|z', '|', arr);结果:
for(set(i,0), i LT arr.count, inc(i),
trace('arr[',get(i),'].value=',arr[get(i)].value);
);
arr[0].value=x
arr[1].value=y
arr[2].value=z
fromcharcode(var, charcode)
escape(var)
escape(var, text)
unescape(var)
unescape(var, text)
tween(variable, value, time*, tweentype*, donecall*, updatecall*)
tween(scale,2);
tween(rotate,90);
tween(width,50%);
onover="tween(alpha,0.7,distance(0.3,0.2));" onout="tween(alpha,1.0,distance(0.3,0.2));"
set(alpha,0); set(visible,true); tween(alpha, 1.0 ,0.3);
tween(layer[logo].width, get(destwidth));
set(layer[image].enabled,false); tween(layer[image].alpha,0.0,0.5,default,removeplugin(image));
set(view.stereographic,true); tween(view.vlookat, 90.0, 2.0); tween(view.fisheye, 1.0, 2.0); tween(view.fov, 150.0, 2.0);
stoptween(variable, ...)
ondown="tween(layer[text].y, 10, distance(400,0.7), linear);" onup="stoptween(layer[text].y);"
loadpano(xmlpath, vars*, flags*, blend*)
loadscene(scenename, vars*, flags*, blend*)
loadpanoscene(xmlpath, scenename, vars*, flags*, blend*)
loadxml(xmlstring, vars*, flags*, blend*)
NOBLEND
BLEND(time, tweentype)
(WebGL only)COLORBLEND(time, color, tweentype)
(WebGL only)LIGHTBLEND(time, color, colorscale, tweentype)
(WebGL only)SLIDEBLEND(time, angle, smooth, tweentype)
(WebGL only)OPENBLEND(time, shape, smooth, zoom, tweentype)
(Flash or WebGL only)ZOOMBLEND(time, zoom, tweentype)
loadpano(pano2.xml);
loadpano(pano2.xml, null, MERGE, BLEND(1));
loadscene(scene1);
loadscene(scene1, null, MERGE, BLEND(1));
loadxml('<krpano><image><sphere url="pano.jpg"/></image></krpano>');
loadxml(get(data[xml].content), null, KEEPALL);
loadpano('%SWFPATH%/pano.xml', null, MERGE, BLEND(2));
loadpano(sphere.xml, image.hfov=1.0&view.limitview=fullrange);
openurl(url, target*)
openurl('https://krpano.com',_self);
openurl('help.html');
lookat(h, v, fov*, distortion*, architectural*, pannini*)
lookat(0,0);
lookat(0,0,90);
loadpano(pano.xml); lookat(45.1, -20.2, 110.0);
lookto(toH,toV,fov*,motiontype*,shortestway*,nonblocking*,donecall*)
looktohotspot(hotspotname*, fov*, motiontype*, shortestway*)
moveto(toH, toV, motiontype*)
zoomto(fov, motiontype*)
moveto(100.0,5,linear(10));
zoomto(130,smooth());
lookto(33,-22,30,smooth(100,50,20));
looktohotspot(hotspot1);
looktohotspot(hotspot2, 40);
looktohotspot(hotspot3, 25, smooth(100,50,20));
looktohotspot(get(name));
adjusthlookat(desthlookat)
adjusthlookat(140); tween(view.hlookat, 140);
getlooktodistance(result, toH, toV, fromH*, fromV*)
stoplookto()
stopmovements()
wait(parameter)
oninterrupt(actions)
oninterrupt(break); lookto(150,30,70); wait(3); lookto(242,0,150); lookto(280,-10,50); wait(3);
oninterrupt( trace(user interrupt); ); lookto(0,0,90); lookto(90,0,90); lookto(180,0,90); lookto(270,0,90); lookto(0,0,90);
screentosphere(x,y, h,v)
spheretoscreen(h,v, x,y, stereoside*)
screentosphere(mouse.x, mouse.y, toh, tov);
screentolayer(layer, screenx,screeny, layerx,layery)
layertoscreen(layer, layerx,layery, screenx,screeny)
screentolayer(bar, mouse.stagex,mouse.stagey, lx,ly);
div(fill, lx, layer[bar].pixelwidth);
mul(fill, 100);
clamp(fill, 0, 100);
txtadd(layer[barfill].width, get(fill), '%');
remapfovtype(fov, srcfovtype, dstfovtype)
remapfovtype(fov, srcfovtype, dstfovtype, width, height)
set(view.fovtype, HFOV); set(view.fov, 90); ... set(view.fovtype, VFOV); remapfovtype(view.fov, HFOV, VFOV);
updateobject(updateall*, updatefov*)
set(image.hfov,1); updateobject(true,true);
updatescreen()
invalidatescreen()
addlayer(name)
addplugin(name)
addhotspot(name)
addlensflare(name, ath*, atv*)
addlayer(button); set(layer[button].url,button.jpg); set(layer[button].align,bottom); set(layer[button].x,10); set(layer[button].y,20); set(layer[button].onhover,showtext('hovering the new button')); set(layer[button].onclick, removelayer(button) );
addhotspot(newspot); set(hotspot[newspot].url,spot.png); set(hotspot[newspot].ath,150); set(hotspot[newspot].atv,30); set(hotspot[newspot].scale,0.7); set(hotspot[newspot].zoom,true); set(hotspot[newspot].onclick, removehotspot(newspot) );
addhotspot(polyspot); set(hotspot[polyspot].fillalpha, 0.25); set(hotspot[polyspot].borderalpha, 0.50); set(hotspot[polyspot].onclick, removehotspot(polyspot) ); set(hotspot[polyspot].point[0].ath,-10); set(hotspot[polyspot].point[0].atv,-10); set(hotspot[polyspot].point[1].ath,-10); set(hotspot[polyspot].point[1].atv,+10); set(hotspot[polyspot].point[2].ath,+10); set(hotspot[polyspot].point[2].atv,+10); set(hotspot[polyspot].point[3].ath,+10); set(hotspot[polyspot].point[3].atv,-10);
addlensflare(sun, 20, -60); set(lensflare[sun].set, FLARESET2); set(lensflare[sun].size, 0.7);
removelayer(name, removechildren*)
removeplugin(name, removechildren*)
removehotspot(name)
removelensflare(name)
js( JavascriptFunction(parameters) )
function test(p1, p2, p3) { alert(p1 + ": " + p2 + " / " + p3); }
js( test('Lookat', get(view.hlookat), get(view.vlookat)) );
jscall( ...any Javascript code...)
jscall('document.getElementById("test").style.display="none";');
jscall(calc('console.log("krpano version: ' + version + '")'));
jscall('history.back()');
jsget(variable, ...Javascript code...)
jsget(ret, 'location.href');
trace('location=', get(ret));
jsget(passwort, 'prompt("Enter Password")');
if(password == 'hidden', ...);
jsget(date, 'new Date().toISOString().slice(0,10);');
trace('date=', get(date));
showlog(state*, position*)
debugvar(varname)
debug(...)
trace(...)
warning(...)
error(...)
fatalerror(errormessage)