UJMLサンプル140:135の同時押しコンポーネントの活用して、同時押し中にカウントアップする(2006/07/10)
UJMLサンプル135:ボタンの同時押し用コンポーネントを作る 最後
を活用し、ボタンの同時押し中にカウントアップするサンプルを作成したので紹介する。今回のサンプルは138番のものがベースになっている。
UJMLサンプル138:135の同時押しコンポーネントの活用
138番では、ユーザーの入力を受け付けて「何かする」部分を別のパーティション message_view.ujml に切り分けた。今回、紹介するものはこの message_view.ujml のみを書き換えている。
message_view.ujml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ujml PUBLIC "-//UIEVOLUTION//DTD UJML 1.5//EN" "../ujml.dtd" [
]>
<!-- http://uienginda.blogs.com メッセージ表示用 -->
<!-- 同時に押されたらカウントアップする -->
<!-- 二つ以上押されていたらカウントアップする -->
<ujml>
<partition>
<state-machines>
<include file="bottommessagebar.ujms" state-machine="MessageBar" />
</state-machines>
<state-variables>
<state-var name="sButtonStatus" type="int" access="import"/>
<state-var name="sCountUp" type="boolean"/>
</state-variables>
<variables>
<var name="mCounter" type="int"/>
</variables>
<functions>
<function name="initCounter" type="void">
<script>
mCounter=0;
sCountUp = false;
</script>
</function>
<function name="fireCounter" type="void">
<script>
if(!sCountUp)sCountUp = true;
</script>
</function>
</functions>
<script>
initCounter();
</script>
<states>
<state var="sCountUp">
<transition value="true">
<delay>300</delay>
<script>
sCountUp = false;
mCounter++;
MessageBar.show(_strcat("Counter : ",mCounter));
sCountUp = true;
</script>
</transition>
</state>
<state var="sButtonStatus">
<transition value="0">
<script>
MessageBar.show("");
initCounter();
</script>
</transition>
<transition value="1">
<script>
MessageBar.show("上 ");
initCounter();
</script>
</transition>
<transition value="2">
<script>
MessageBar.show(" 下 ");
initCounter();
</script>
</transition>
<transition value="3">
<script>
MessageBar.show("上下 ");
fireCounter();
</script>
</transition>
<transition value="4">
<script>
MessageBar.show(" 左 ");
initCounter();
</script>
</transition>
<transition value="5">
<script>
MessageBar.show("上 左 ");
fireCounter();
</script>
</transition>
<transition value="6">
<script>
MessageBar.show(" 下左 ");
fireCounter();
</script>
</transition>
<transition value="7">
<script>
MessageBar.show("上下左 ");
fireCounter();
</script>
</transition>
<transition value="8">
<script>
MessageBar.show(" 右");
initCounter();
</script>
</transition>
<transition value="9">
<script>
MessageBar.show("上 右");
fireCounter();
</script>
</transition>
<transition value="10">
<script>
MessageBar.show(" 下 右");
fireCounter();
</script>
</transition>
<transition value="11">
<script>
MessageBar.show("上下 右");
fireCounter();
</script>
</transition>
<transition value="12">
<script>
MessageBar.show(" 左右");
fireCounter();
</script>
</transition>
<transition value="13">
<script>
MessageBar.show("上 左右");
fireCounter();
</script>
</transition>
<transition value="14">
<script>
MessageBar.show(" 下左右");
fireCounter();
</script>
</transition>
<transition value="15">
<script>
MessageBar.show("上下左右");
fireCounter();
</script>
</transition>
</state>
</states>
</partition>
</ujml>
ソースコード:
Download 140.zip
コメント