1

inブロックscriptを評価しながら、タグで定義されたカスタム関数を呼び出したい。condtransition

たとえば、関数を次のように定義したいとします。

<datamodel>
    <data expr="1" id="xOccurrences"/>
    <data expr="0" id="yOccurrences"/>
</datamodel>
<script>
    def updateVars(hasXOccurred, hasYOccurred) {
        if(hasXOccurred) xOccurrences++
        if(hasYOccurred) yOccurrences++
    }

    def thresholdBreached(hasXOccurred, hasYOccurred) {
        updateVars(hasXOccurred, hasYOccurred)

        if(xOccurrences > 5 && yOccurrences > 8)
            return true

        return false
    }
</script>

次に、遷移評価式でそれらを呼び出したい(副作用あり):

<state id="StateA">
    <transition event="EventX" cond="thresholdBreached(_event.data.xOccurred, _event.data.yOccurred)" target="StateB"/>
</state>

scxmlステートマシン定義でこれを達成することは可能ですか?

4

0 に答える 0