events元素官方说明文档
<events>
更新 2018.3.28 krpano 1.19 pr15
krpano事件 – 当特定事件调用时可以执行action或指定的功能。
有两种类型的事件:
全局krpano事件
一个不具有name属性的
<events>
元素定义的事件都是全局事件。通常只有一个全局事件。当有另一个<events>
标签定义相同的事件时,之前定义的同一事件就会被覆写。
注意 – 当载入另一个xml文件或其他场景时,所有全局事件将保留,它们不会发生改变,除非在新的xml文件或场景中被再次定义。
独立局部krpano事件
一个具有name属性的
<events>
元素定义的事件都是独立事件。
它可以包含所有类型的事件,但它们不会覆写全局事件,它们是另外进行调用的。
这些被“命名”的<events>
元素同样具有keep属性(默认值为false)。这意味着没有keep=”true”
的<events>
元素在新全景载入时将会被自动移除。
提示 – 被命名的事件能够在不影响其他插件或xml代码的基础下在独立的插件和代码中发生作用。
<events onenterfullscreen=”” '进入全屏时调用该事件。'
onexitfullscreen=”” '从全屏模式返回到普通窗口模式时调用该事件。'
onxmlcomplete=”” '当新的场景要载入时调用,与onxmlcomplete相似,但只用于scene。'
onpreviewcomplete=”” '当预览图载入完成时调用该事件。'
onloadcomplete=”” '当全景图像载入完成时调用。 当使用多分辨率图像,当前视角所有图像载入完毕时调用'
onnewpano=”” '当有一个新的全景图载入并且其view参数 (type, imagesize, hfov, vfov) 可用时调用。'
onremovepano=”” '当前全景图移除后调用该事件(发生在新的全景图载入之前)。'
onnewscene=”” '当新的场景要载入时调用,与onxmlcomplete相似,但只用于scene。'
onxmlerror=”” '发生错误,说明下方'
onloaderror=”” '发生错误,说明下方'
onkeydown=”” '按键信息存储在keycode变量中。说明下方'
onkeyup=”” '当一个按下的按键被释放时调用该事件。释放的按键信息存储在keycode变量中。'
onclick=”” '当有鼠标点击全景图时调用该事件。'
onsingleclick=”” '检测单击的特殊事件。'
ondoubleclick=”” '检测双击的特殊事件'
onmousedown=”” '当有鼠标在全景图上按下时调用该事件。'
onmouseup=”” '当有鼠标释放时调用该事件。'
onmousewheel=”” '当使用鼠标滚轮时调用该事件。'
oncontextmenu=”” '当右键菜单要打开的时候调用该事件,可用于修改右键菜单条目(例如在显示之前更改显示的文字和点击动作)以匹配当前的情形和需要。'
onidle=”” '当没有用户交互并且经过idletime的秒数之后时调用该事件。'
onviewchange=”” '在最终渲染完成之前或当前视角发生变化时调用。'
onviewchanged=”” '当前视角发生改变并且渲染完成时调用该事件。注意 – 该事件的使用可能会影响渲染的品质和浏览的速度!'
onresize=”” '当屏幕窗口发生变化或者area尺寸发生改变时调用该事件。'
onautorotatestart=”” '当自动旋转开始时调用该事件。'
gyro_onavailable=”” ''
gyro_onunavailable=”” ''
gyro_onenable=”” ''
gyro_ondisable=”” ''
webvr_onavailable=”” ''
webvr_onunavailable=”” ''
webvr_onunknowndevice=”” ''
webvr_onentervr=”” ''
webvr_onexitvr=”” ''
/>
onloaderror =“” onxmlerror = “” 当发生载入错误时调用以下事件:
当xml加载或解析错误时调用
onxmlerror
事件。
当图像加载错误(所有类型的图像包括全景图、layer或热点图)时调用onloaderror
事件。
如果没有设置这些事件,则会执行默认的错误处理 –
也就是说如果是xml解析错误则会出现致命错误信息,如果是图像加载错误则在krpano信息窗口中显示。
使用onxmlerror
事件以及一些自定义错误处理,在遇到xml错误时仍然可以继续使用viewer
。
错误信息将会存储在lasterror
变量中。
注意 – onxmlerror
事件只能在html5 viewer中使用!
onkeydown 当有键盘按键被按下时调用该事件。
当有键盘按键被按下时调用该事件。 按键信息存储在
keycode
变量中。
当一个按键持续按下时,则系统会自动发送重复的onkeydown
事件。可以使用control.keydownrepeat
来屏蔽。
onsingleclick ondoubleclick 检测单击和双击的特殊事件。
检测单击和双击的特殊事件。
与普通的onclick
事件不一样(触发是即时的),onsingleclick
事件的触发可能会延时一点(最多延时400毫秒),因为它需要检查是否有第二次点击这样就是作为双击事件看待。
所以有以下的情况: 一次单击事件(与普通onclick事件相比稍为延时一点触发) 两次单击事件 – 两个点击之间的距离鼠标移动得太远。
一个双击事件 – 两个点击之间的时间间隔非常短,且鼠标几乎没有任何移动。
mouse.clickx
与mouse.clicky
变量存储了最新一次的鼠标点击坐标。 同样支持触屏应用(例如单触和两次触屏)
onmousewheel
当使用鼠标滚轮时调用该事件。 鼠标滚轮数据存储在
wheeldelta
以及wheeldelta_raw
变量中。
在不具有鼠标的触屏设备中,该事件在使用2指手势缩放时调用。wheeldelta
数据会依据缩放确定为正值或负值。
wheeldelta_touchscale
变量在这种情况下会提供更多细节信息。
onviewchange
在最终渲染完成之前或当前视角发生变化时调用。
在该事件中对view
设置的评估和视角限制设置还没完成。这就是可以在最终渲染完成之前在该事件中改变视角。
注意 – 该事件的使用可能会影响渲染的品质和浏览的速度!
onresize
当屏幕窗口发生变化或者area尺寸发生改变时调用该事件。
此外载入一个新的全景时也会调用该事件。
新窗口尺寸存储在stagewidth
与stageheight
两个变量中。
新的area尺寸可以通过area.pixelwidth
以及area.pixelheight
获取。
onautorotatestart
当自动旋转开始时调用该事件。
例如autorotate.enabled设置为enabled在经过了没有用户交互的autorotate.waittime等待时间,或者是调用了autorotate.start()。
可用于展示特定的自动漫游下的用户界面或隐藏正常的用户界面。
onautorotatestop
当自动旋转停止时调用该事件。
通常是用户中断了旋转或旋转被disabled或stopped。
可以恢复在onautorotatestart中变化了的一切事情。。
onautorotateoneround
当以下情况时调用该事件:
转完360度时,
或者局部全景或平面全景从左至右完全横摇时。
可用于在漫游中切换到下一个全景,例如自动漫游。如果在自动旋转时两个全景之间使用KEEPMOVING参数效果更佳。
onautorotatechange
当autorotate.enabled设定发生改变时调用该事件。
可用于更新自动旋转按钮的状态。