diff options
author | No'am Rosenthal <noam.rosenthal@nokia.com> | 2009-11-26 14:37:34 -0800 |
---|---|---|
committer | No'am Rosenthal <noam.rosenthal@nokia.com> | 2009-11-26 14:37:34 -0800 |
commit | 7a19605fcc176c03563016836f208c88c1971987 (patch) | |
tree | 9fcba3b2934876281fc17ab784adf0f43d2c794e /examples | |
parent | f39fc65768abd12577664cf086ab6255a2f17d01 (diff) |
many fixes and optimizations to SCXML
Diffstat (limited to 'examples')
-rw-r--r-- | examples/blackjack/blackjack.scxml | 19 | ||||
-rw-r--r-- | examples/calc/calc.scxml | 226 |
2 files changed, 106 insertions, 139 deletions
diff --git a/examples/blackjack/blackjack.scxml b/examples/blackjack/blackjack.scxml index 4c73cd4..5362546 100644 --- a/examples/blackjack/blackjack.scxml +++ b/examples/blackjack/blackjack.scxml @@ -197,7 +197,7 @@ <transition event="q-messagebox.finished" target="waitForBet" /> <transition event="bth-mb-timeout" target="waitForBet" /> <onentry> - <send event="'bth-mb-timeout'" delay="'1500ms'" /> + <send event="bth-mb-timeout" delay="1500ms" /> </onentry> </state> <state id="testCards"> @@ -235,20 +235,18 @@ <state id="checkWinner"> <onentry> - <script> - _global.diff = myDeck.evalBest() - dealerCards.evalBest(); - </script> + <assign dataid="diff" expr="myDeck.evalBest() - dealerCards.evalBest()" /> </onentry> - <transition cond="diff>0" target="win" /> - <transition cond="diff<0" target="loss" /> - <transition cond="diff==0" target="draw" /> + <transition cond="_data.diff>0" target="win" /> + <transition cond="_data.diff<0" target="loss" /> + <transition cond="_data.diff==0" target="draw" /> </state> <state id="endGame"> <invoke type="q-bindings"><content>[[welcomeLabel,"text","Game Over"]]</content></invoke> <transition event="timeout" target="newgame" /> <onentry> - <send event="'timeout'" delay="'3s'" /> + <send event="timeout" delay="3s" /> </onentry> </state> <state id="endRound"> @@ -256,9 +254,8 @@ <transition event="q-signal:newRoundButton.clicked()" target="newround" /> <transition event="timeout" target="newround" /> <onentry> - <send event="'timeout'" delay="'3s'" /> + <send event="timeout" delay="3s" /> </onentry> - <state id="win"> <onentry> <script> @@ -271,7 +268,7 @@ <state id="loss"> <invoke type="q-bindings"><content>[[welcomeLabel,"text","You Lost..."]]</content></invoke> <transition cond="points == 0" target="endGame" /> - </state> + </state> <state id="draw"> <invoke type="q-bindings"><content>[[welcomeLabel,"text","You It's a draw."]]</content></invoke> <onentry> diff --git a/examples/calc/calc.scxml b/examples/calc/calc.scxml index ec732c7..516c20e 100644 --- a/examples/calc/calc.scxml +++ b/examples/calc/calc.scxml @@ -1,203 +1,173 @@ <scxml initial="on" profile="ecma" name="calc"> <script> - function insertDigit () - { - insert (_event.name.charAt(_event.name.lastIndexOf('.')+1)); - } - function insert(c) - { - short_expr += c; - updateDisplay(); - } - function negate () - { - short_expr = "-"; - updateDisplay (); - } + function insertDigit () + { + insert (_event.name.charAt(_event.name.lastIndexOf('.')+1)); + } + function insert(c) + { + short_expr += c; + updateDisplay(); + } + function negate () + { + short_expr = "-"; + updateDisplay (); + } - function updateDisplay () - { - if (short_expr == "") - dispLbl.text = _data.res; - else - dispLbl.text = short_expr; - } - function subcalc () - { - if (short_expr != "") - _data.long_expr += "(" + short_expr + ")"; - _data.res = eval(_data.long_expr); - short_expr = ""; - updateDisplay (); - return true; - } + function updateDisplay () + { + if (short_expr == "") + dispLbl.text = _data.res; + else + dispLbl.text = short_expr; + } + function subcalc () + { + if (short_expr != "") + _data.long_expr += "(" + short_expr + ")"; + _data.res = eval(_data.long_expr); + short_expr = ""; + updateDisplay (); + return true; + } - function insertOp () - { - var sc = subcalc (); - var op = ''; - if (_event.name == "OPER.PLUS") - op = '+'; - else if (_event.name == "OPER.MINUS") - op = '-'; - else if (_event.name == "OPER.STAR") - op = '*'; - else if (_event.name == "OPER.DIV") - op = '/'; - _data.long_expr += op; - return sc; - } - function reset () - { - short_expr = ""; - } - function calc () - { - if (subcalc ()) { - short_expr = "" + _data.res; - _data.long_expr = ""; - _data.res = 0; - return true; - } else - return false; - } + function insertOp () + { + var sc = subcalc (); + var op = ''; + if (_event.name == "OPER.PLUS") + op = '+'; + else if (_event.name == "OPER.MINUS") + op = '-'; + else if (_event.name == "OPER.STAR") + op = '*'; + else if (_event.name == "OPER.DIV") + op = '/'; + _data.long_expr += op; + return sc; + } + function reset () + { + short_expr = ""; + } + function calc () + { + if (subcalc ()) { + short_expr = "" + _data.res; + _data.long_expr = ""; + _data.res = 0; + return true; + } else + return false; + } </script> <state id="on" initial="ready"> <datamodel> - <data id="long_expr" /> - <data id="res" >0</data> - </datamodel> + <data id="long_expr" /> + <data id="res" >0</data> + </datamodel> <onentry> <script> - var short_expr = 0; - _data.res = 0; - _data.long_expr = ""; - updateDisplay(); + var short_expr = 0; + _data.res = 0; + _data.long_expr = ""; + updateDisplay(); </script> </onentry> <state id="ready" initial="begin"> <state id="begin"> <transition event="OPER.MINUS" target="negated1" /> <onentry> - <script> - updateDisplay (); - </script> + <script>updateDisplay ();</script> </onentry> </state> <state id="result"> </state> - <transition event="OPER" target="opEntered" /> - <transition event="DIGIT.0" target="zero1"> - <script> - reset (); - </script> - </transition> - <transition event="DIGIT" target="int1"> - <script> - reset (); - </script> - </transition> - <transition event="POINT" target="frac1"> - <script> - reset (); - </script> - </transition> - </state> + <transition event="OPER" target="opEntered" /> + <transition event="DIGIT.0" target="zero1"> + <script>reset ();</script> + </transition> + <transition event="DIGIT" target="int1"> + <script>reset ();</script> + </transition> + <transition event="POINT" target="frac1"> + <script>reset ();</script> + </transition> + </state> <state id="negated1"> <onentry> - <script> - negate (); - </script> + <script>negate ();</script> </onentry> <transition event="DIGIT.0" target="zero1" /> - <transition event="DIGIT" target="int1" /> + <transition event="DIGIT" target="int1" /> <transition event="POINT" target="frac1" /> </state> <state id="operand1"> <state id="zero1"> - <transition event="DIGIT" cond="_event.name != 'DIGIT.0'" target="int1" /> + <transition event="DIGIT" cond="_event.name != 'DIGIT.0'" target="int1" /> <transition event="POINT" target="frac1" /> </state> <state id="int1"> <transition event="POINT" target="frac1" /> - <transition event="DIGIT"> - <script> - insertDigit (); - </script> + <transition event="DIGIT"> + <script>insertDigit ();</script> </transition> <onentry> - <script> - insertDigit (); - </script> + <script>insertDigit ();</script> </onentry> </state> <state id="frac1"> <onentry> - <script> - insert ('.'); - </script> + <script>insert ('.');</script> </onentry> - <transition event="DIGIT"> - <script> - insertDigit (); - </script> + <transition event="DIGIT"> + <script>insertDigit ();</script> </transition> </state> <transition event="CE" target="ready" /> - <transition event="OPER" target="opEntered" /> + <transition event="OPER" target="opEntered" /> </state> <state id="error" /> <state id="opEntered"> <transition event="OPER.MINUS" target="negated2" /> <transition event="POINT" target="frac2" /> <transition event="DIGIT.0" target="zero2" /> - <transition event="DIGIT" target="int2" /> + <transition event="DIGIT" target="int2" /> <onentry> - <script> - insertOp (); - </script> + <script>insertOp ();</script> </onentry> </state> <state id="negated2"> <onentry> - <script> - negate (); - </script> + <script>negate ();</script> </onentry> <transition event="CE" target="opEntered" /> <transition event="DIGIT.0" target="zero2" /> - <transition event="DIGIT" target="int2" /> + <transition event="DIGIT" target="int2" /> <transition event="POINT" target="frac2" /> </state> <state id="operand2"> <state id="zero2"> - <transition event="DIGIT" cond="_event.name != 'DIGIT.0'" target="int2" /> + <transition event="DIGIT" cond="_event.name != 'DIGIT.0'" target="int2" /> <transition event="POINT" target="frac2" /> </state> <state id="int2"> - <transition event="DIGIT"> - <script> - insertDigit (); - </script> + <transition event="DIGIT"> + <script>insertDigit ();</script> </transition> <onentry> - <script> - insertDigit (); - </script> + <script>insertDigit ();</script> </onentry> <transition event="POINT" target="frac2" /> </state> <state id="frac2"> <onentry> - <script> - insert ('.'); - </script> + <script>insert ('.');</script> </onentry> <transition event="DIGIT"> - <script> - insertDigit (); - </script> + <script>insertDigit ();</script> </transition> </state> <transition event="OPER" cond="!insertOp()" target="error" /> |