• 状态机学习---处理连续性问题的利器


    原理
         有限状态机 把复杂的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续处理为离散数字处理。
     
    状态机编程思想特点
            与传统的上下文编程不同,状态机将程序的行为划分为若干个状态,对于每一个状态规定其行为和可能的状态转换关系。状态机的状态即可以由其内部定义的状态转换关系改变,也可由外部操作改变,从而影响状态机的行为
     
    问题情景:动画切换。
    clock svg 从箭头 变为时钟 -》字体从无到有  
    arc 从一条线变为一个时钟  -》字体从无到有  
    arrow svg 从时钟变为箭头 -》字体从无到有  
     
    适用于需要保持自身连续性的程序
     
    问题情景:[音乐播放器]编写音乐播放器,控制其播放、停止、暂停、继续等。
     
    continue 继续 找到文件 跳转至播放状态
    close 停止   可跳转至播放状态
    playing 播放 播放文件-直到结束-然后停止 可跳转到停止或暂停状态
    wait 暂停   可跳转至播放状态
    over 终止 结束过程  
     
    以前没接触过这些东西,导致在处理连续性的动画问题时,大量的使用sertimeout来处理,经常会产生动画混乱,并且不容易修改。改了又改,但还是一直有问题,直接接触到这个理念,感觉特别有用,使代码的结构一下子清晰不少。同时深感程序设计思想学习的重要性,希望同样遇到这种问题的你,通过这种方法解决问题。
  • 相关阅读:
    nginx下根据指定路由重定向
    Ubuntu下配置apache开启https
    php+websocket搭建简易聊天室实践
    rsync + git发布项目
    nginx下配置Yii2 rewrite、pathinfo等
    新装NGINX重启,出现错误 nginx: [error] open() "/usr/local/nginx/logs/nginx.pid"
    wamp mysql服务意外停止
    PHP异步请求
    php curl_errno 60
    php开启fileinfo扩展
  • 原文地址:https://www.cnblogs.com/zjy1017/p/6751346.html
Copyright © 2020-2023  润新知