状态机解决复杂逻辑及使用

状态机解决复杂逻辑 开发回顾: 第一代:两个变量控制逻辑 1 鼠标 切换背景成程序A的视图/程序B的视图 IsBackgroundA 用于表示当前背景的变量
    切换程序AB激活状态   IsAppAActive 用于表示当前激活程序的变量  
第二代:两个变量控制逻辑 1 鼠标 切换背景成程序A的视图/程序B的视图 IsBackgroundA 用于表示当前背景的变量
    切换程序AB激活状态   IsAppAActive 用于表示当前激活程序的变量  
2   快捷键   切换背景成程序A的视图/程序B的视图    
    切换程序AB激活状态    
第三代:三个变量控制逻辑,且出现两个变量组合来确定关系的情况 1 鼠标 切换背景成程序A的视图/程序B的视图 IsBackgroundA 用于表示当前背景的变量
    切换程序AB激活状态   IsAppAActive 用于表示当前激活程序的变量  
2   快捷键   切换背景成程序A的视图/程序B的视图    
    切换程序AB激活状态    
3   程序A激活状态下   鼠标滑过X区域时,激活B   IsAppAActive =true&&CurrentActiveState 用于记录鼠标滑进X区域前的状态,方便滑出后赋值原始状态  
    鼠标滑出X区域时,恢复原始激活状态    
    执行程序B命令时,激活程序B    
第四代:四个变量控制+排列组合

需要在鼠标和快捷键上激活命令上添加动画,此时我已经觉得程序不可控起来,

第一点,是因为动画添加的时机不同,激活A时可能需要先激活A在开始动画,B可能需要先展示动画再激活B,

第二点,此时需要引入第四个变量来控制动画效果,因为弹入弹出动画是相反的

1 鼠标 切换背景成程序A的视图/程序B的视图 IsBackgroundA 用于表示当前背景的变量
    切换程序AB激活状态   IsAppAActive 用于表示当前激活程序的变量  
2   快捷键   切换背景成程序A的视图/程序B的视图    
    切换程序AB激活状态    
3   程序A激活状态下   鼠标滑过X区域时,激活B   IsAppAActive =true&&CurrentActiveState 用于记录鼠标滑进X区域前的状态,方便滑出后赋值原始状态  
    鼠标滑出X区域时,恢复原始激活状态    
    执行程序B命令时,激活程序B    
4   激活程序时添加动画     IsRightAnimation 来选择动画展示效果 , IsBackgroundA&&IsAppAActive==》来选择动画展示时机  
第五代:五个变量控制+排列组合

需要多台设备同时开启程序进行同步,接受来自服务器的鼠标键盘命令,需要添加一个变量表示是否具有主控权

另外,鼠标执行方法中添加了多个判断,包括动画,有的方法是写在Anmation.completed方法中,每次执行一个命令所有变量值几乎都会变一次,遇到问题简直不能调试

1 鼠标 切换背景成程序A的视图/程序B的视图 IsBackgroundA 用于表示当前背景的变量
    切换程序AB激活状态   IsAppAActive 用于表示当前激活程序的变量  
2   快捷键   切换背景成程序A的视图/程序B的视图    
    切换程序AB激活状态    
3   程序A激活状态下   鼠标滑过X区域时,激活B   IsAppAActive =true&&CurrentActiveState 用于记录鼠标滑进X区域前的状态,方便滑出后赋值原始状态  
    鼠标滑出X区域时,恢复原始激活状态    
    执行程序B命令时,激活程序B    
4   激活程序时添加动画     IsRightAnimation 来选择动画展示效果 , IsBackgroundA&&IsAppAActive==》来选择动画展示时机  
5   不同设备间同步,添加发送命令和接受命令   需要多台设备同时开启程序进行同步   IsMaster 是否具有控制权  
第六代:五个变量控制+排列组合+动画时机

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zydwjs.html