为什么我的有限状态机实现不了?
我也踩过这个坑( 1 )
有限状态机
详细描述
截图
代码
编辑于2024-11-24
-
[深圳|结业弟子]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
- 去第 页