summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/blackjack/blackjack.scxml19
-rw-r--r--examples/calc/calc.scxml226
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&gt;0" target="win" />
- <transition cond="diff&lt;0" target="loss" />
- <transition cond="diff==0" target="draw" />
+ <transition cond="_data.diff&gt;0" target="win" />
+ <transition cond="_data.diff&lt;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" />