精華區beta Flash 關於我們 聯絡資訊
如題,最近做了有限狀態機(Finite State Machine, FSM)的研究 因為我想要用FSM來做我的個人網站 用不同的state來表示不同頁面 用不同的transition來表示轉場 應該管理起來很輕鬆 (也可以應用在選單、遊戲事件串接上) 這邊有個很簡單的範例 雖然說要做這樣的效果用FSM好像有點殺雞用牛刀 不過這樣展示FSM的功能還蠻方便的 SWF http://0rz.tw/FDi49 原始檔 http://0rz.tw/TFfCh FSM簡單來說就是一個擁有多個狀態的"機器" 當FSM處於一個狀態的時候 接收到不同的input訊號會跳到不同的狀態 狀態轉換的過程稱為transition FSM會觸發使用者的自訂函式 能夠觸發函式的時機有三個: 1.進入一個狀態的時候 2.離開一個狀態的時候 3.經過一個transition的時候 FSM創造state與transition的方式是使用factory pattern 用createState()和createTransition()來產生結構 接下來只要用input()來輸訊號 FSM就會依照這個input訊號來做轉態 上面的範例有6個state,12個transition (兩個相臨state中間有來回兩條transition關係) input信號為"cw"和"ccw" (順時針、逆時針轉動) 當我建構好所有的state和transition之後 接下來只要在FSM身上呼叫 input("cw") 或者 input("ccw") FSM就會根據不同的信號來做動作 這些動作寫在一些函式裡面 而這些函式被呼叫的時機就是之前提到的三個時機 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.88.123
shingoliang:酷!不過flex中已經有實做了耶,state(s)/transition 01/24 16:10
cjcat2266:這個跟Flex的state不一樣唷,Flex是排版state 01/24 16:19
cjcat2266:我的FSM的state可以式抽象的state 01/24 16:19
cjcat2266:transition效果也可以自己寫,不侷限於Flex內建的那些 01/24 16:19
shingoliang:瞭解!看來要研究一下才知道差異有多少:P 01/24 16:49