ステート変数のクリアについて

UJMLではステート変数のクリアに、ビルトイン関数として _clear_state() という関数を持っています。

同様の動作をこの関数を使わずに実現する方法としては、あるステート変数に対して、transitionタグで記述されていないステートの値をセットするという方法があります。SDKと一緒に提供されているサンプルUJMLコードでは、どちらの方法も確認することが出来ます。

デバッグ時にステート変数の変化を明示的に確認したい時などは、_clear_state()を使わずにステートの値を明示的にセットする方法でUJMLアプリケーションの実装を行う方がよいでしょう。


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ujml PUBLIC "-//UIEVOLUTION//DTD UJML 1.5//EN"
"http://www.uievolution.com/dtd/ujml-1.5.dtd" [
  <!ENTITY STATE_NONE   "0">
  <!ENTITY STATE_VAL1   "1">
  <!ENTITY STATE_VAL2   "2">
]>
<ujml>
  <application>
    <state-variables>
      <state-var name="sYourState" type="int" />
    </state-variables>

    <functions>
      <function name="clearStateSample1" type="void">
        <script>
          _clear_state();
          sYourState = &STATE_VAL1;;
        </script>
      </function>
      <function name="clearStateSample2" type="void">
        <script>
          sYourState = &STATE_NONE;;
          sYourState = &STATE_VAL1;;
        </script>
      </function>
    <functions>

    <script>
      /* These 2 functions works exactly same way */
      clearStateSample1();
      clearStateSample2();
    </script>

    <states>
      <state var="sYourState">
        <transition value="&STATE_VAL1;">
          <scripit>
            _trace("state is changed to STATE_VAL1");
          </scripit>
        </transition>
        <transition value="&STATE_VAL2;">
          <scripit>
            _trace("state is changed to STATE_VAL2");
          </scripit>
        </transition>
        <!-- Please be aware that NO STATE_NONE value in this section. -->
      </state>
    <states>
  </application>
</ujml>

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-01-16 (火) 16:47:43 (1329d)