« UJMLサンプル139:英語→日本語 辞書のプロトタイプ | メイン | UJMLサンプル141:135の同時押しコンポーネントの活用して、同時押し中に四角(box)を大きくする »

UJMLサンプル140:135の同時押しコンポーネントの活用して、同時押し中にカウントアップする(2006/07/10)

Samples_140_countup 以前紹介した同時押しコンポーネント

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

トラックバック

この記事のトラックバックURL:
https://www.typepad.com/services/trackback/6a00d8341c2e2e53ef00e55094d0b58833

UJMLサンプル140:135の同時押しコンポーネントの活用して、同時押し中にカウントアップするを参照しているブログ:

コメント

この記事へのコメントは終了しました。