首页 > 代码库 > 状态机学习---处理连续性问题的利器
状态机学习---处理连续性问题的利器
原理
有限状态机 把复杂的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续处理为离散数字处理。
状态机编程思想特点
与传统的上下文编程不同,状态机将程序的行为划分为若干个状态,对于每一个状态规定其行为和可能的状态转换关系。状态机的状态即可以由其内部定义的状态转换关系改变,也可由外部操作改变,从而影响状态机的行为
问题情景:动画切换。
clock | svg 从箭头 变为时钟 -》字体从无到有 | |
arc | 从一条线变为一个时钟 -》字体从无到有 | |
arrow | svg 从时钟变为箭头 -》字体从无到有 |
适用于需要保持自身连续性的程序
问题情景:[音乐播放器]编写音乐播放器,控制其播放、停止、暂停、继续等。
continue | 继续 | 找到文件 | 跳转至播放状态 |
close | 停止 | 可跳转至播放状态 | |
playing | 播放 | 播放文件-直到结束-然后停止 | 可跳转到停止或暂停状态 |
wait | 暂停 | 可跳转至播放状态 | |
over | 终止 | 结束过程 |
以前没接触过这些东西,导致在处理连续性的动画问题时,大量的使用sertimeout来处理,经常会产生动画混乱,并且不容易修改。改了又改,但还是一直有问题,直接接触到这个理念,感觉特别有用,使代码的结构一下子清晰不少。同时深感程序设计思想学习的重要性,希望同样遇到这种问题的你,通过这种方法解决问题。
状态机学习---处理连续性问题的利器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。