バックグラウンド描画について †UJMLアプリケーションが UIEPlayer によって実行される時、(UJMLで明示的に描画していない)画面のバックグラウンドが自動的に描画されるかどうかは、UIEPlayer の実装に依存します。すなわちUJMLアプリケーションで明示的に描画していない部分の画面がどうなっているか(ユーザーにどう見えるか)は、そのUJMLアプリケーションを実行しているUIEPlayer次第となります。 もちろん画面に何が表示されているかがプレイヤー次第というのはよくありません。テスト用のちょっとしたアプリを除くと、一般的には全てのUJML アプリケーションは全画面をカバーするような描画を行う必要があります。ただ単に "Hello" と描画したい場合でも、デバイスの全画面をカバーするようなバックグランド描画に重ねて "Hello" と描画するのが正しいやり方です。 なんか不便だなと思いましたか? これは「UIEPlayerのアーキテクチャーをできるだけシンプルに保つ」というデザイン指針に基いています。 デフォルトのバックグラウンドをUIEPlayerで行うということは、要するに次のようなディスプレイ要素を 全てのUIEPlayerの内部にハードコードして、常に一番後ろで描画するようにするということになります。 <display> <box> <width> <eval>mScrWidth</eval> </width> <height> <eval>mScrHeight</eval> </height> <bg>&_COLOR_BLACK;</bg> </box> </display> でもアプリケーションで本当に欲しいバックグラウンドの色は上の例のような黒ではなくて、白かもしれません。その場合は、上の黒の全画面の box 要素に重ねて、UJMLアプリケーションで自分自身のバックグラウンドをカバーする 白色の box 要素を持つ必要があります。そしてその場合は、UIEPlayer 内部にハードコードして持っている黒色の box 要素は単に無駄になります。 通常のUJMLアプリケーション、すなわち、一般のユーザーによって使われることを想定しているUJMLアプリケーションを書く際は、(デザインや使い勝手からの要請により)どちらにせよ全画面を埋め尽くす描画を行うことになります。そしてその場合には UIEPlayer 内部でハードコードして持っているバックグラウンド描画のためのデフォルトの描画要素は無駄となります。 UIEPlayer の実装によっては、何も描画していない初期画面が灰色(もしくは白か黒)になっていることがあります。そういった一部のプレイヤーの実装に惑わされることなく、画面のバックグラウンドは必ず UJML で描くようにしてください。 |