action元素官方说明文档

<action>

更新 2016.4.9 krpano 1.19 pr4

使用<action>元素可定义krpano动作。
这些动作与其它脚本和程序语言的函数相似。.

可在任意位置调用动作 – 通过call接口从事件、从其它动作或从外部来源(JavaScript、插件)。

有两种动作的类型:



普通的krpano actions

<action name=”…” secure=”false” autorun=””  protect=”false”>
action1();
action2();

</action>

在一个普通的<action>元素中可放置一系列的krpano action。当该动作调用时,内部的这些动作将一个接一个被执行。

查看:


krpano动作/函数的调用约定

参数传递/解析

当调用一个动作时,可以进行参数传递。

要在action内使用参数,可以使用占位符 %0 到 %99%0代表action的name,%1 代表第一个参数,%2 代表第二个参数,如此类推。

参数传递是简单的文本替换。这意味着在action内代码执行之前,所有的占位符会被所指定的参数所替换。如果占位符没有指定的参数,则有“null”替代。若在动作中使用 % 字符,则需使用%% 。



Javascript krpano actions (仅HTML5下使用)

<action name=”…” type=”Javascript autorun=””><![CDATA[

Javascript代码

]]></action>

Javascript actions则直接支持使用JavaScript代码。在更复杂的情况下响应速度更迅速。JavaScript actions只在HTML5下可用。

Javascript <action>中预定义了以下对象和函数:

  • krpanokrpano接口对象 (get, set, call, trace, …)。
  • args[] – 包含有传递参数的一个数组(args[0] = action的名字, args[1] = 第一个参数, …).
  • caller – 调用了该函数的 <layer>,<plugin> 或 <hotspot> 元素的对象。
  • resolve(str) – 解析/获取krpano变量/路径的函数。类似默认的krpano变量解析 – 当指定的变量/路径存在,则返回其数值,当不存在时,则返回所传递的数值。
  • actions – 获取内置原生krpano actions的对象 (例如调用actions.tween(…); 来执行tween 动作);

 

属性名 变量全名 类型 默认值
name action[name].name String
action的名字。(查看name说明)。
属性名 变量全名 类型 默认值
type action[name].type String
krpano动作的两种类型:

属性名 变量全名 类型 默认值
autorun action[name].autorun String
设定action是否在启动时自动运行。

可设置的值:

  • preinit – “预载入”- 在任何事件或动作之前执行该动作(包括在 onstart 事件之前)。
  • onstart – 在启动时运行该动作(在 onstart 事件之后紧接着执行)。
属性名 变量全名 类型 默认值
protect action[name].protect Boolean false
当protect设置为true时,action[name].content变量将无法访问。

这可用于保护和隐藏自定义action的源代码(例如在加密的xml文件定义的内容)。
属性名 变量全名 类型 默认值
secure action[name].secure Boolean false
当secure设置为true时,即使在Javascript接口屏蔽时也可以从JavaScript接口中调用。

这使得可以更改特定的受限的外部接口。
变量全名 类型 默认值
action[name].content String
action标签内的内容。该内容可以动态设置或修改。
变量全名 (只读) 类型 默认值
action.count int 0
action元素的数量。



注意 – 当载入另外一个xml文件或scene时,所有action将会保留,除非它们在另外的xml文件或scene中被重新定义,这样的话它们就会被新的action所覆盖。

ico-example 示例
启动时调用动作

<krpano onstart=”intro();”>

<action name=”intro“>
lookat(0,0,90);
wait(LOAD);
lookto(120,10,110);
lookto(-50,40,110);
lookto(0,0,90);
</action>

</krpano>

从热点中调用动作并且直接使用热点的属性

<action name=”overaction“>
tween(scale, 2.0);
tween(alpha, 1.0);
</action>
<action name=”outaction“>
tween(scale, 1.0);
tween(alpha, 0.5);
</action>
<plugin name=”pic1″ …
onover=”overaction();”
onout=”outaction();”
/>
<plugin name=”pic2″ …
onover=”overaction();”
onout=”outaction();”
/>

传递参数给动作

<action name=”test“>
showlog();
trace(‘parameter1=’,%1);
trace(‘parameter2=’,%2);
</action>
<action name=”parameterpassingtest“>
test(‘Test1′, ‘Test2′);
</action>

在 “action元素官方说明文档” 上有 1 条评论

发表评论