我是分层状态机的新手。
当父状态转换为另一个状态时,子状态会发生什么情况? 它是否保持当前状态?
我想从称为正在运行的父状态过渡到称为故障的父状态。 清除故障后,我想转换回运行状态并进入第一个子状态。
史蒂文
- 运行到错误:放置一个触发器,引用名为"EVT_Fault"的事件
- 例如,"低"和"高"是运行的两个子状态
- 将初始节点放入运行状态,目标为"低"
- 把一个从法鲁特到跑步的过渡,不要给过渡设置任何触发器。(这是完成过渡)
假设低是活动状态,触发EVT_Fault,发生以下顺序:
low.exit
running.exit
transition_running_to_fault.effect
fault.entry
(when entry finished, since there is completion transition)
fault.exit
transition_fault_to_running.effect
running.entry
transition_initial_to_low.entry
当父状态退出时,其子状态也应退出。
若要在重新进入父状态时实现子状态的重新进入,您需要一个历史伪状态(深或浅,具体取决于子状态的深度)。
请参阅此处的示例:http://www.steelbreeze.net/state.js/#examples - 按两次"翻转"按钮会显示深厚的历史。
数字万用表