Transitions是一条带有箭头的线,用于将一个图形对象链接到另一个图形。在大多数情况下,转换表示系统从一个模式(状态)对象到另一个模式的过程。转换通常连接源对象和目标对象。源对象是转换开始的地方,目标对象是转换结束的地方。下图显示了从源状态B到目标状态A的转换。
Junctions将过渡划分为多个Transition段。在这种情况下,完整的Transition由从起点状态到终点状态的段组成。在确定完整Transition的有效性的过程中对每个片段进行评估。
以下示例有两个分段转换:一个从“on”状态转换为“off”状态,另一个从状态“on”转换为其自身:
默认转换是一种没有源对象的特殊类型的转换。
转换不能像状态那样包含其他对象。但是,状态包含转换。转换的层次结构是根据转换的父级、源级和目标级来描述的。父级是包含转换的源和目标的最低级别。考虑下例中转换的父级
下表解析了上一示例中每个转换的父级。/字符表示图表。状态层次结构中的每个级别都由句点(.)字符分隔。
Transition 的特征在于它的标签。标签可以由事件、条件、条件操作和/或转换操作组成。这个字符是默认的转换标签。转换标签具有以下通用格式:
event[condition]{condition_action}/transition_action
您可以将event、condition、condition_action和transition_action的名称替换为适当的内容,如示例“转换标签示例”中所示。标签的每个部分都是可选的
指定导致进行转换的事件,前提是条件(如果指定)为true。指定事件是可选的。没有事件表示在发生任何事件时进行转换。使用OR逻辑运算符(|)指定多个事件。
在前面的例子中,只要条件[Off_count==0]为true,事件E的广播就会触发从On到Off的转换.
指定一个布尔表达式,当为true时,该表达式将验证指定事件触发器要进行的转换。将条件括在方括号([])中。
在前面的示例中,条件[off_count==0]必须计算为true,才能执行条件操作,才能使从源到目标的转换有效。
遵循转换的条件,并用大括号({})括起来。一旦条件被评估为真,并且在转换目的地被确定为有效之前,它就会被执行。如果未指定任何条件,则隐含条件的计算结果为true,并执行条件操作。
在前面的示例中,如果条件[off_count==0]为true,则立即执行条件操作off_count++。
如果条件(如果指定)为true,则在确定转换目标有效后执行。如果转换由多个段组成,则只有在确定到最终目的地的整个转换路径有效时,才会执行转换操作。在转换操作之前使用一个/。
在前面的示例中,如果条件[off_count==0]为true,并且目标状态off有效,则执行转换动作Light_off。
在大多数情况下,当转换的源状态为活动且转换标签有效时,转换是有效的。默认转换不同,因为没有源状态。默认转换到子状态的有效性是在转换到其超级状态时评估的,假设超级状态是活动的。此标记标准适用于默认转换和普通大小写转换。下表列出了有效转换标签的可能组合