« UJMLサンプル140:135の同時押しコンポーネントの活用して、同時押し中にカウントアップする | メイン | 先週の人気記事ベスト3 トップは「UIEに入りたくなったら読むべき10の記事 UIEジャパンの場合」 »

UJMLサンプル141:135の同時押しコンポーネントの活用して、同時押し中に四角(box)を大きくする(2006/07/10)

Samples_141_countupbox 前回紹介した140番のサンプルと基本的には同じだが、応用例として紹介する。今回も、以下のエントリーで紹介した同時押しコンポーネントを活用している。

UJMLサンプル138:135の同時押しコンポーネントの活用

UJMLサンプル135:ボタンの同時押し用コンポーネントを作る 最後

 前回の140番では同時押し中にカウントアップしていたが、今回はそれを応用し同時押し中に箱をだんだんと大きくするサンプルだ。もう少し実践的なものの方が役立つと思うが、基礎的な練習としてみていただけたらと思う。

 同時押し中、例えば上と右で右上に移動、といったものも紹介できたらと思っている。

 変更したのは、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 メッセージ表示用 141用-->
<!-- 同時に押されたらカウントアップする -->
<!-- カウントアップにより箱の大きさを変える -->
<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-var name="sBox" 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="sBox">
                <transition value="true">
                    <display>
                        <box>
                            <x><eval>(_getIntProperty(&_PROPERTY_INT_SCREEN_WIDTH;) - (5 * mCounter)) / 2</eval></x>
                            <y><eval>(_getIntProperty(&_PROPERTY_INT_SCREEN_HEIGHT;) - (5 * mCounter)) / 2</eval></y>
                            <width><eval>5 * mCounter</eval></width>
                            <height><eval>5 * mCounter</eval></height>
                        </box>
                    </display>
                </transition>
            </state>
            <state var="sCountUp">
                <transition value="true">
                    <delay>300</delay>
                    <script>
                        sCountUp = false;
                        mCounter++;
                        MessageBar.show(_strcat(
"Counter : ",mCounter));
                        _clear_state(sBox);
                        sBox = true;
                        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 141.zip

トラックバック

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

UJMLサンプル141:135の同時押しコンポーネントの活用して、同時押し中に四角(box)を大きくするを参照しているブログ:

コメント

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