UJMLサンプル004:ステート変数千本ノック その4 タイマー+Templates(2006/01/26)
UJMLインサイドUJMLでTemplatesの説明をまだしていないが、ついでに簡単なTemplatesの使い方をサンプルで見てみる。
ねたは、前回のタイマーサンプルだ。
ポイント:
・<label>を無理やり<template>化した。
こんなサンプルではありがたみはわからないが、きっといつかわかる日がくるはずである。
さて、インサイドUJMLの続きを書こうかな。
ところで、インサイドUJMLを最後までざーっと、ほんとにざーっと見ると、途中に「言語のローカライズ」の話や、「遅いデバイスでのうまいやり方」みたいな話もあって、UIEngineがUserInterfaceを大切にしているなぁという、ちょっとした精神というか哲学を感じる。
http://developer.uievolution.com/docs/ja/InsideUJML/index.html
---コード
<?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="mTimer" type="int"/>
</variables>
<templates>
<template name="timerLabel">
<display>
<label>
<text><eval>mTimer</eval></text>
<fg>&_COLOR_WHITE;</fg>
<bg>&_COLOR_BLACK;</bg>
</label>
</display>
</template>
</templates>
<script>
mTimer = 10;
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>
<expand template="timerLabel"/>
</display>
<delay>1000</delay>
<script>
sMessage = false;
mTimer--;
if(mTimer > 0)sMessage=true;
</script>
</transition>
</state>
</states>
</application>
</ujml>
---
コメント