krpano的各个事件event的先后次序(时间节点)是怎样的?

这次再谈krpano事件/动作的时间节点,是因为在krpano1.18中对于action元素新增了autorun属性,目的就是让具有该属性的action能够在漫游启动时自动运行。

krpano的时间轴(更新 2016.2.24)

krpano时间轴详解

1 autorun[name].autorun=”preinit”

对任意action添加autorun属性,然后将该值设为preinit,这样的话,这个action将在漫游启动时优先调用于任何事件和动作,当多个action都具有该属性时,则按照action的载入顺序执行。注意此时因为还没载入scene,因为当前scene的数据的获取都是null。代码写法如下

 

2 krpano.onstart

在默认皮肤中,你可能有N个scene的标签,但如果没有通过loadscene,这些scene的内容是不会被载入到内核中进行解析的,在krpano标签的onstart属性里,你可以在这里添加任何action、修改任何元素的属性。因此在默认模版中,我们可以看到一个名为startupaction,其中就有一个loadscene的action,通常在没有传入scene的name时,会选择载入第一个场景(即scene[0])。注意此时因为还没载入scene,因为当前scene的数据的获取都是null。只要是loadscene之前的,都获取不了当前scene的内容。

 

3 autorun[name].autorun=”onstart”

对任意的一个action,添加autorun属性,然后将该值改为onstart,这样的话,这个action将在漫游启动时调用,当多个action都具有该属性时,则按照载入顺序执行。该设置的动作直接在krpano.onstart之后执行。如果在krpano的onstart中具有loadscene,或者其它相同具有该属性的action含有loadscene动作,则可以调用当前scene的信息。

 

4 scene.onstart

在krpano的onstart里有一个startup,其中执行了一次loadscene(1.18之前的默认皮肤的做法,如今新的默认皮肤在krpano的onstart中不会有任何的action,启动第一个场景采用自启动action的写法,也就是上面一种),因此默认第一个scene的xml内容被载入,也就是这个scene的所有内容要被viewer解析,这些代码解析完后,就到这个scene的onstart出场。这个onstart可以定义pano的view以及image以及一切可能的action。

 

5 onremovepano

接下来从内存中移除前一个全景的图像文件。也就是上一个场景的图像。

 

6 onxmlcomplete

xml代码载入完毕,包括之前在onstart定义的action在这里解析完毕。从这个时刻开始载入预览图。

 

7 onnewscene

onxmlcomplete,两个是一致的,只是应用层面(仅针对scene标签)相对窄一些。从这个时刻开始载入预览图。在这个事件包括这个事件之前,还可以设置xml代码。例如image标签。

 

8 onpreviewcomplete

预览图载入完毕。

 

9 onnewpano

按照view标签信息开始载入新的全景图像。

 

10 onloadcomplete

当前场景的全景图像载入完成。

在 “krpano的各个事件event的先后次序(时间节点)是怎样的?” 上有 3 条评论

发表评论