【为什么我的有限状态机实现不了? _有限状态机 】 | IT修真院·坑乎
问题已收录 为什么我的有限状态机实现不了?
我也踩过这个坑( 1 )
已统计您的踩坑,无需重复点击
回答(1)
有限状态机
详细描述
截图
代码
编辑于2024-11-23
  • [深圳|结业弟子]JS-钟俊
    0

    你需要先引入状态机的文件,再创建一个状态机,

    给予状态机的一些赋值,然后在状态机的各种状态下

    赋予其相应的函数,最后运行其状态机,代码如下,你可以参考一下;

    var fsm = new StateMachine({
    init:newState,
       transitions: [
    {name:"kill",from:"start",to:"killed"},
           {name:"tell",from:"killed",to:"told"},
           {name:"speak",from:"told",to:"spoke"},
           {name:"vote",from:"spoke",to:"voted"}
    ],

       methods: {
    onKill:function () {
    $(".kill").css({backgroundColor:"#2375af"});
               $(".triLeft1").css({borderColor:"transparent #2375af transparent transparent"});
               // $(".kill").addClass("over1");
               // $(".triLeft1").addClass("over2");//思路二
           },
           onTell:function () {
    $(".tell").css({backgroundColor:"#2375af"});
               $(".triLeft2").css({borderColor:"transparent #2375af transparent transparent"});
               // $(".tell").addClass("over1");
               // $(".triLeft2").addClass("over2");//思路二
           },
           onSpeak:function () {
    $(".speak").css({backgroundColor:"#2375af"});
               $(".triLeft3").css({borderColor:"transparent #2375af transparent transparent"});
           },
           onVote:function () {
    $(".vote").css({backgroundColor:"#2375af"});
               $(".triLeft4").css({borderColor:"transparent #2375af transparent transparent"});
           }
    }

    });

    switch (fsm.state){
    case "killed" :
    fsm.onKill();
           aboutKill();
           break;
       case "told":
    fsm.onKill();
           fsm.onSpeak();
           break;
       case "spoke":
    fsm.onKill();
           fsm.onTell();
           fsm.onSpeak();
           break;
       case "voted":
    fsm.onKill();
           fsm.onTell();
           fsm.onSpeak();
           fsm.onVote();
           abuotVote ();
           aboutKill();
    }


    编辑于2018-11-17