## 语法及使用 `actionname(parameters); ...` * 语法格式:动作名(参数); * 动作名可以为以下几种: 1. 内置的krpano动作名… 2. 在xml任何地方定义的action元素名… 3. 包含动作代码的变量/属性名。 * 不在引号内(单或双引号字符)的空白字符(如空格,制表,新行)将被忽略。 * 可以同时编写若干条动作,只需在每条动作尾部加上';'字符。 * 动作将被逐条执行。 * 在动作调用之间及参数之间的空白(如空格、tabs以及换行)将被忽略。 * 参数数量取决于被调用的动作实体。 * 参数之间需要使用逗号','来分开。 * 要想在参数中使用空白或逗号,那么参数就需要用单引号或双引号进行封闭。 * 所有给定参数都视为字符。当使用变量名作为参数时,不会被自动解析为对应值。一些动作可以自动处理变量名参数,但是那要依赖与动作体本身。要想使用变量作为参量来传递,必须使用get动作。注 - 一些动作可以自动解析变量参数的值,但这仅限少数动作的自身特性。 ## 表达式 表达式将被使用在:if语句;条件循环(for,loop)语句;和 calc 动作中。用于判断逻辑条件是否成立,计算数学表达式或拼接字符串。 * 基本语法:a 操作符 b * 其中a或b项可以是变量,值或字符串。 * 操作符可以是下表罗列之一。 * 运算顺序取决于具体的操作符,但在等价操作符内运算顺序是从左向右。 * 可以使用括号实现一个自定义运算顺序 - 例如:(a 操作符 b)操作符(c 操作符 d) ![](https://box.kancloud.cn/4d6ccee2d057e7c1e229ee2e5c3eb9a9_496x773.png) ~~~ .GT. 大于 .GE. 大于或等于 .LT. 小于 .LE. 小于或等于 .EQ. 等于 .NE. 不等于 .AND. 逻辑与 .OR. 逻辑或 .NOT. 逻辑非 .EQV. 逻辑等 .NEQV. 逻辑不等 运算符优先级由高到低顺序为:()→**→*或/→+或-→.GT.或.GE.或.LT.或.LE.或.EQ.或.NE.→.NOT.→.AND.→.OR.→.EQV.或.NEQV ~~~ ## 数组 * 每个xml带name的元素是一个数组的 element / item。 * xml元素的名称是数组的名称和名称属性定义数组元素的名称/项目。 * 一个数组在krpano总是一个对象数组。 * 这样的数组项对象可以包含任何类型的自定义属性/属性。 * 数组可以预先定义或定义在运行时动态地设置一个数组项值,当第一次设置项值,然后自动将创建一个数组。 ***静态XML语法: (在定义在xml结构)*** `<array_name name="item_name" value="..." />` ***动态行为的语法: (当访问或设置在运行时)*** `array_name[item_name].value` **数组可用方法:** ~~~ count 统计 sortby(attribute, parameters*) 排序 removearrayitem(name or index) 移除 ~~~ ## 事件 ~~~ onclick:鼠标点击 onover:鼠标经过 onhover:鼠标停留 onout:鼠标移开 ondown:鼠标按下 onup:鼠标抬起 ~~~ ## count `lensflareset[name].flare.count` ## index `lensflareset[name].flare[...].index` * * * * * 官方文档:https://krpano.com/docu/actions/#top