美文网首页
2018-02-01 state-machine

2018-02-01 state-machine

作者: 欧特雨 | 来源:发表于2018-02-01 22:41 被阅读0次

状态机的使用

来源:https://github.com/jakesgordon/javascript-state-machine

使用方法:require状态机模块,new一个状态机对象,并且传入一个对象,对象可以定义几个属性,其中有Transitions,methods,init,data等。

Transitions是一个数组,数组中放入{name:'toYellow',from:'green',to:'yellow'},这样形式的元素,代表着一个变化,名字是toYellow,从green变成yellow。methods是方法,是状态切换的时候自动调用的,顺序为onBeforeTransition--onLeaveState--onTransition--onEnterState--onAfterTransition。也可以定义为onBeforeToYellow--onLeaveGreen--onTransition--onEnterYellow--onAfterToYellow这样的形式。init为初始状态,如果有,new一个状态机对象的时候,会自动从none转换为定义的初始状态,相应的方法也会被调用。data用来存放使用者自定义的变量,比如

var StateMachine = require('state-machine');

var fsm = new StateMachine({

init:'green',

Transitions:[

{name:'toYellow',from:'green',to:'yellow'},

],

methods: {

onBeforeTransition: function (lifecycle) { },

onLeaveState: function (lifecycle) { },

onEnterState: function (lifecycle) { },

onAfterTransition: function (lifecycle) { },

onTransition: function (lifecycle) { },

});

fsm.is(s) - 如果当前状态是传入的状态,返回true。

fsm.can(t) - 如果可以执行该transition,返回true。

fsm.cannot(t) - 如果不可以执行该transition,返回true。

fsm.transitions() - 返回当前状态可以调用的transition,类型数组

fsm.allTransitions() - 返回所有可用的transition。

fsm.allStates() - 返回所有能够转换的状态。

在methods中不能直接调用fsm.can(t) 和fsm.cannot(t) ,可能是因为状态还没转换完成,使用setTimeout(function(){},0)就没问题了。

用cocoscreator实现的红绿灯:https://pan.baidu.com/s/1jJiFnIu

相关文章

  • 2018-02-01 state-machine

    状态机的使用 来源:https://github.com/jakesgordon/javascript-state...

  • 我有一首歌

    笑迎岁月 2018-02-01 10:27 · 字数 487 · 阅读 0 · 游园乐 这是前年秋天的思绪。...

  • Day161 | 遇见POWH3D(二) - justo、inv

    背景:powhcoin项目出现漏洞,just团队准备重写更好的合约。 2018-02-01,justo一共403条...

  • es6-函数

    title: es6-函数date: 2018-02-01 21:47:46tags: es6 前言 杭州这周温度...

  • 漳州微商协会章程

    刘锦锋 2018-02-01 17:37 · 字数 2749 · 阅读 622 · 日记本 图片发自简书App 1...

  • 羽叶茑萝

    放大图 第一,先构图 第二,叶片先涂浅黄色 第二,用草绿涂叶尖 2018-02-01

  • 陈俊杰《六项精进》打卡 2月1日

    小七不是鸡蛋 2018-02-01 02:25 · 字数 211 · 阅读 0 · 日记本 【日精进打卡第12天】...

  • 沸腾

    2018-02-01 ——岁月如歌诗词选(第二集.35) 覌微信《刚刚 珠港澳大桥传来重...

  • 转【Tyger老师】 写个亲爱的太太和希子宝宝

    2018-02-01 12:06 Tyger从不担心儿子的英语学习,但毕竟有语言敏感期,怎么办呢? Sunny妈妈...

  • 2018-02-02

    王宝强给你的职业发展启示:打造个人“人设”到底能给你带来多大优势? 原创 2018-02-01 少毅 [个人发展学...

网友评论

      本文标题:2018-02-01 state-machine

      本文链接:https://www.haomeiwen.com/subject/htvjzxtx.html