太郎日記’79J

「やったろうやないの。」な太郎のblog
技術ネタはタロタローグに任せて、こっちはニュースメインで。
<< October 2018 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>
 
RECOMMEND
MySQLによるタフなサイトの作り方
MySQLによるタフなサイトの作り方 (JUGEMレビュー »)
佐藤 真人,桑野 章弘,岡田 達典,大黒 圭祐
MySQLだけでなく、DBサーバやアプリの設計など、あらゆる手段を使ってタフなサイトを作る本である
最新記事
あわせて読みたい
あわせて読みたい
なかのひと
ClusterMaps
CM by JUGEM
スポンサーサイト

一定期間更新がないため広告を表示しています

- | 個別記事 | - | -
UIE Developerのエミュレータが変な挙動をするらしい→確かに変だ。

UIE Developer’s Forumに、
UIEngineださんが1月14日にポストした内容を見たんですが、
それによると、

On SDK2.1, running an application.

While edit-box is opening and it is edit mode, when I click button "one" on emulator, the event <key>1</key> is catched.

Is it the expected action?
とのこと。
要するに、
「Editボックスを開いてる間に、エミュレータの”1”ボタンを押すと、
キーイベントが拾われるんだが、いいの?」
ってことですな。
返信が、
Could you post some example code please? I'm not exactly sure what wyou mean by "while edit-box is opening". Maybe the state transition containing the edit-box hasn't become active yet. Sounds like it could be some kind of race condition.
「言ってる事がよくわからん。サンプル貼ってよ」
で止まってました。
で、気になったんで調査してみました。

とりあえずForumの内容によれば、
テキスト入力中にエミュレータの画面の「1」を押すと、
イベントが拾われるとなっています。
つまり、

この、左上の「1」をクリックすると、
本来ならば入力画面上で1が入力されるだけのはずが、
表示画面に移るということでしょう。
今回は、左下の「*」でも試してみましょう。

てなワケで実験内容は以下。
  1. キーボードの「1」ボタンを押す
  2. キーボードの「*」ボタンを押す
  3. エミュレータの「1」をクリック
  4. エミュレータの「*」をクリック
これで、挙動を調べればわかる。

で、調査用のソースは以下。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ujml PUBLIC "-//UIEVOLUTION//DTD UJML 2.1//EN" "http://www.uievolution.com/dtd/ujml-2.1.dtd" [

]>


<ujml>
  <application>

    <state-variables>
      <state-var name="sShow" type="boolean"/>
      <state-var name="sEdit" type="boolean"/>
    </state-variables>

    <variables>
      <var type="int" name="mScrWidth"/>
      <var type="int" name="mScrHeight"/>
      <var type="int" name="mTextHeight"/>
      <var type="string" name="mText"/>
    </variables>

    <script>
      mScrWidth = _getIntProperty(&_PROPERTY_INT_SCREEN_WIDTH;);
      mScrHeight = _getIntProperty(&_PROPERTY_INT_SCREEN_HEIGHT;);
      mTextHeight = _text_height( 0, 0, 0 );
      mText = "";
      sShow = false;
      sEdit = true;
    </script>

    <display>
      <!-- Display F1 function key for exiting app -->
      <fn>
        <text>Quit</text>
        <event name="onselect">
          <accelerators>
            <key>F1</key>
          </accelerators>
          <script>
            _unload();
          </script>
        </event>
      </fn>
      <!-- Display screen background color -->
      <box>
        <width> <eval>mScrWidth</eval> </width>
        <height> <eval>mScrHeight</eval> </height>
        <bg>&_COLOR_BLACK;</bg>
      </box>      
    </display>

    <states>
      <state var="sShow">
        <transition value="true">
          <display>

            <!-- Display text centered on screen -->
            <label>
              <text><eval>mText</eval></text>
              <x><eval>(mScrWidth - _text_width( mText, 0, 0, 0 )) / 2</eval></x>
              <y><eval>(mScrHeight - mTextHeight) / 2</eval></y>
              <fg>&_COLOR_YELLOW;</fg>
              <event name="onselect">
                <accelerators>
                  <key>FIRE</key>
                </accelerators>
                <script>
                  sEdit = true;
                  sShow = false;
                </script>
              </event>
            </label>
          </display>
        </transition>
      </state>
      <state var="sEdit">
        <transition value="true">
          <display>
            <edit var="mText">
              <width><eval>100</eval></width>
              <x-caption>入力後、F2を押して下さい。</x-caption>
              <event name="onselect">
                <accelerators>
                  <key>F2</key>
                  <key>1</key>
                  <key>STAR</key>
                </accelerators>
                <script>
                  sEdit = false;
                  sShow = true;
                </script>
              </event>
            </edit>
          </display>
        </transition>
      </state>
    </states>

  </application>
</ujml>
  1. 起動すると、まずは入力画面から始まります。
  2. 適当に値を入力し、
  3. F2ボタンを押すと表示画面に移り、入力内容が表示されます。
とまぁ、見た目上はこのような動きですが、
ソースの
            <edit var="mText">
              <width><eval>100</eval></width>
              <x-caption>入力後、F2を押して下さい。</x-caption>
              <event name="onselect">
                <accelerators>
                  <key>F2</key>
                  <key>1</key>
                  <key>STAR</key>
                </accelerators>
                <script>
                  sEdit = false;
                  sShow = true;
                </script>
              </event>
            </edit>
この太字部分で指定しているように、
「F2」以外にも、
「1」キー(1)「*」キー(STAR)
でも、入力が終了し、表示画面に移ります。

実験開始。

  1. キーボードの「1」ボタンを押す

    入力画面に「1」と出ました。
    イベントは拾われなかったようですね。
  2. キーボードの「*」ボタンを押す

    キーボード上で「1」を押したときと同じです。
    入力画面に「*」と出ました。
  3. エミュレータの「1」をクリック

    イベントが拾われたらしく、
    入力が終了して表示画面に移ってます。
    しかも、「1」が入力されてます。
  4. エミュレータの「*」をクリック

    入力が終了して表示画面に移ってます。
    しかも、「1」の時と違い、「*」が入力されてません。

以上より、
基本的に入力画面でキーボードを押しても、
イベントにならないようです。
が、エミュレータの方のボタンを押すと、
ボタンにより異なる挙動をするようです。

この、「異なる挙動」の部分を鑑みるに、
多分これは、「expected action」ではないですね。

あとは、サンプルコードの日本語部分を英語にして、
「俺は質問者じゃないけど、
多分こういうことじゃない?」
と言う英語を作文してポストすれば良いわけですな。

では、NOVA行ってきます。

スポンサーサイト
- | 個別記事 | - | -
ドミノ・ピザでも食べながら、コメントをどうぞ。
コメントする









 
トラックバック
この記事のトラックバックURL(記事と無関係なトラックバックは削除される可能性があります)
※記事が投稿されてから30分の間、トラックバックを行うことが出来ません。
http://tarotaro.jugem.cc/trackback/1450
 

Copyright (C) 2004 paperboy&co. All Rights Reserved.

Powered by "JUGEM"