发表于: 2017-05-05 23:08:45
1 1106
今天完成的事情:
1.写任务4法官日记和黑夜解密的样式
2.学习JS有限状态机:
三特征:状态总数(state)是有限的。
任一时刻,只处在一种状态之中。
某种条件下,会从一种状态转变(transition)到另一种状态。
简单说,有限状态机是一种模型,模型都用来模拟事物,能够被有限状态机这种模型模拟的事物,一般都有以下特点:
1.可以用状态来描述事物,并且任一时刻,事物总是处于一种状态;
2.事物拥有的状态总数是有限的;
3.通过触发事物的某些行为,可以导致事物从一种状态过渡到另一种状态;
4.事物状态变化是有规则的,A状态可以变换到B,B可以变换到C,A却不一定能变换到C;
5.同一种行为,可以将事物从多种状态变成同种状态,但是不能从同种状态变成多种状态。
有限状态机的函数库Javascript Finite State Machine:
交通信号灯的描述:
var fsm = StateMachine.create({
initial: 'green',
events: [
{ name: 'warn', from: 'green', to: 'yellow' },
{ name: 'stop', from: 'yellow', to: 'red' },
{ name: 'ready', from: 'red', to: 'yellow' },
{ name: 'go', from: 'yellow', to: 'green' }
]
});
交通信号灯的初始状态(initial)为green,events属性是触发状态改变的各种事件,比如warn事件使得green状态变成yellow状态,stop事件使得yellow状态变成red状态等等。生成实例以后,就可以随时查询当前状态。
fsm.current :返回当前状态。
fsm.is(s) :返回一个布尔值,表示状态s是否为当前状态。
fsm.can(e) :返回一个布尔值,表示事件e是否能在当前状态触发。
fsm.cannot(e) :返回一个布尔值,表示事件e是否不能在当前状态触发。
明天计划的事情:
继续任务4
问题:
任务3的时候不知道怎么在载入的同时就触发函数,加一个onload事件就好了
收获:
如上
评论