« 開発者フォーラムに入るなら今だ!というお話。 | メイン | [prototype]そろそろ開発フレームワークが必要か? »

UJMLサンプル044:指定された位置から開くテキストボックスみたいなもの。(2006/02/17)

以前の「UJMLサンプル041:パッドボタンでテキストを開く」で紹介した、開くテキストボックスのようなもののサンプルコードを紹介する。

←の画面上を適当にクリックして頂ければ、ランダムに座標を選びテキストボックスのようなものが開く。こんな感じのものは、例えばゲームのキャラの噴出しとか、画面上で選択した何かの説明に使えるかもしれない。

★---コード(main.ujml) 使う側
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ujml PUBLIC "-//UIEVOLUTION//DTD UJML 1.5//EN"
"http://www.uievolution.com/dtd/ujml-1.5.dtd" [
]>
<!-- http://uiengineda.blogs.com ランダムな位置から開く -->
<ujml>
    <application>
        <state-machines>
            <include file="components/background.ujms" state-machine="Background" />
            <include file="components/open_multilabel.ujms" state-machine="OpenMultiLabel" />
        </state-machines>
        <functions>
            <function name="randRange" type="int"><!-- これは指定範囲の数字をランダムに作る関数 -->
                <parameters>
                    <var name="seed" type="int"/>
                    <var name="min" type="int"/>
                    <var name="max" type="int"/>
                </parameters>
                <return>
                    <eval>
                        (_srand(seed) % (max - min + 1)) + min
                    </eval>
                </return>
            </function>
        </functions>
        <display>
            <box>
                <x>0</x>
                <y>0</y>
                <width><eval>_getIntProperty(&_PROPERTY_INT_SCREEN_WIDTH;)</eval></width>
                <height><eval>_getIntProperty(&_PROPERTY_INT_SCREEN_HEIGHT;)</eval></height>
                <fg>&_COLOR_TRANSPARENT;</fg>
                <bg>&_COLOR_TRANSPARENT;</bg>
                <event name="onSelect">
                    <accelerators>
                        <key>FIRE</key>
                    </accelerators>
                    <script>
                        Background.init(&_COLOR_WHITE;,true);
                        OpenMultiLabel.show(
                            randRange(_msec(),1,_getIntProperty(&_PROPERTY_INT_SCREEN_WIDTH;)),
                            randRange(_msec(),1,_getIntProperty(&_PROPERTY_INT_SCREEN_HEIGHT;)),
                            0,
                            0,
                            _getIntProperty(&_PROPERTY_INT_SCREEN_WIDTH;),
                            _getIntProperty(&_PROPERTY_INT_SCREEN_HEIGHT;),
                            "ファイアー ヨロシク!");
                    </script>
                </event>
            </box>
        </display>
    </application>
</ujml>
★---コード(open_multilabel.ujms) 使われる側
は、ファイルで、こちらから取得してください。
Download open_multilabel.ujms

トラックバック

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

UJMLサンプル044:指定された位置から開くテキストボックスみたいなもの。を参照しているブログ:

コメント

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