<!--方式1:通过frequency来控制周期命令执行,indexFlag从[0,frequency-1]---> <CycleCommand frequency="" indexFlag="" cycleCondition=""> <VariableCommand name="" type="" index="" expression=""/> </CycleCommand> <!--方式2:通过begin,end来控制周期命令执行,indexFlag从[begin,end]---> <CycleCommand begin="" end="" indexFlag="" cycleCondition=""> <VariableCommand name="" type="" index="" expression=""/> </CycleCommand>
周期命令根据frequency或begin、end确定周期循环范围[0,frequency-1]或[begin,end],在每次循环时对数组索引变量indexFlag进行赋值,同时执行VariableCommand命令来对数组变量赋值。
参 数 | 类 型 | 选 项 | 注 释 |
|---|---|---|---|
indexFlag | 字符串 | 必填 | 索引变量标识,用来表示循环次数的变量名,在VariableCommand的expression中会被引用 |
frequency | 数值 | 必填 | 控制周期命令执行次数,indexFlag索引变量取值范围是[0,frequency-1];若设置frequency,则begin,end参数无效 |
begin | 数值 | 选填 | indexFlag索引变量从begin开始循环;通过begin,end参数确定循环范围为[begin,end],实现对索引变量的赋值 |
end | 数值 | 选填 | indexFlag指定的变量到达end时终止计算 |
cycleCondition | 数值 | 选填 | 周期命令执行条件,当cycleCondition不为0时执行VariableCommand命令,支持数值表达式 |
示例一:与数组Array组合使用,实现在屏幕上格式化展现0-99这100个数字。Var标签定义名为find的数组变量#find[],数组大小为100;Array标签中实现对100个文本的textExp和坐标等赋值;当点击按钮时CycleCommand循环100次,使得indexFlag中的索引变量#col从0增至99;在每次循环时,变量命令将expression中的#col变量的值赋值给#find[#col]变量(即find数组中的第#col个元素),最终通过Array中Text显示在屏幕上。注意:VariableCommand与Var中的type定义为number[],表示find数组是整数数组。
<Var name="find" type="number[]" size="100"/> <Array x="100" y="300" frequency="100" indexFlag="__i" > <Text textExp="#find[#__i]" size="30" align="center" x="#__i%10*90" y="int(#__i/10)*90"/> </Array> <Button x="0" y="0" w="1080" h="1920"> <Trigger action="up"> <CycleCommand frequency="100" indexFlag="col"> <VariableCommand name="find" type="number[]" index="#col" expression="#col"/> </CycleCommand> </Trigger> </Button>
示例二:通过begin,end参数实现对数组find[0]=0到find[99]=99赋值,是示例一中使用frequency参数实现的周期命令的另一种写法。
<CycleCommand begin="0" end="99" indexFlag="col"> <VariableCommand name="find" type="number[]" index="#col" expression="#col"/> </CycleCommand>
示例三:通过设置cycleCondition使得在屏幕上显示除20以外的0-99数值。设置cycleCondition=ne(#col,20),当#col不等于20时,ne(#col,20)=1,执行变量赋值命令,当#col等于20时,ne(#col,20)=0,#find[20]=20该变量命令不会执行,所以#find[20]变量为空值,最终屏幕中只会显示除20以外的0-99数值。
<Var name="find" type="number[]" size="100" /> <Array x="100" y="300" frequency="100" indexFlag="__i" > <Text textExp="#find[#__i]" size="30" align="center" x="#__i%10*90" y="int(#__i/10)*90"/> </Array> <Button x="0" y="0" w="1080" h="1920"> <Trigger action="up"> <CycleCommand begin="0" end="100" indexFlag="col" cycleCondition="ne(#col,20)"> <VariableCommand name="find" type="number[]" index="#col" expression="#col"/> </CycleCommand> </Trigger> </Button>