UJMLサンプル002:ステート変数千本ノック:ルパン三世ティッカー2(2006/01/26)
ルパン三世ティッカー その2
前回の第一回↓の続き。
http://uiengineda.blogs.com/uiengine_/2006/01/post_2.html
ステート変数とスクリプトをうまく使って、処理の繰り返しを実装。booleanのステート変数をtrue,false切り替えて表示/非表示を連続的におこないます。
ポイント:
1.ステート変数にboolean型を採用。
2.<script>エレメント内でステート変数書き換えで、一度falseにして表示する文字を変更、そして、trueにして再表示。
3.ビルトイン関数の_substring(文字列切り出し)、_strlen(文字列長さ)を使用しました。
※前回は「俺の名はル」まで表示、今回は全部表示です。
---コード
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ujml PUBLIC "-//UIEVOLUTION//DTD UJML 1.2//EN" "ujml.dtd" >
<ujml>
<application>
<state-variables>
<state-var name="sMessage" type="boolean" />
</state-variables>
<variables>
<var name="mMessage" type="string"/>
<var name="mChar" type="string"/>
<var name="mCounter" type="int"/>
</variables>
<script>
mMessage = "俺の名はルパン三世";
mCounter = 0;
mChar = _substring(mMessage, mCounter, mCounter + 1);
sMessage = true;
</script>
<display>
<fn>
<text>Back</text>
<event name="onselect">
<accelerators> <key>F1</key> </accelerators>
<script>
_unload();
</script>
</event>
</fn>
</display>
<states>
<state var="sMessage">
<transition value="true">
<display>
<label>
<text><eval>mChar</eval></text>
<fg>&_COLOR_WHITE;</fg>
<bg>&_COLOR_BLACK;</bg>
</label>
</display>
<delay>200</delay>
<script>
sMessage = false;
mCounter++;
if(mCounter == _strlen(mMessage))mCounter = 0;
mChar = _substring(mMessage, mCounter, mCounter + 1);
sMessage=true;
</script>
</transition>
</state>
</states>
</application>
</ujml>
---
コメント