« Flash Lite コンテンツ製作顛末記 その4 | トップページ | Flash Lite コンテンツ製作顛末記 その6 »

2007/10/22

Flash Lite コンテンツ製作顛末記 その5

 さて、土曜日の夜には、パーツの並べ方もわかり、ActionScript で数値入力ができるまでになっていた。いよいよ本格的な実装を始めたのだが、ここで一番大きな問題にぶち当たった。

 ボタン フォーカスの問題である。

 入力に使えるキーは、“数字”、“*” と “#” のみ。ボタン フォーカスの移動には、“↑”、“↓” そして “決定” キーしか使えないのが、Flash Lite 1.x の仕様だ。数字以外の入力操作は、“↑” “↓” キーで選択、“決定” キーで実行するしかない。当然、ボタン フォーカスの順番は、使い勝手の良し悪しを大きく左右する。

 ところが、Flash Lite 1.x では、フォーカスの順番を好きなように決められない。画面内のボタンの配置がすべてを決める。“↓” キーを押したときに、ボタンフォーカスは、上に配置されているボタンから下に配置されているボタンに、フォーカス移動する。同じ高さに配置されていれば、左に配置されているボタンから右に配置されているボタンに、フォーカスが移動する。例外はない。

Focus01 最初の計画では、起動した時に(今はなき)“=” ボタンにフォーカスを持たせる予定だった。(左図の赤い四角)

 そして、そこから↓キーで各演算子ボタン、↑キーで履歴の一番下にフォーカスを移動する予定だった。

Focus02 ところが、なにも考えずに実装をすると、左二番目の図のように、最初の↓キーで、履歴の一番上にフォーカスが表示されてしまう。六番目の履歴が左上にあるので、Flash Lite 1.x の仕様どおりだ。しかしそれは、私のやりたいことではない。

 なんとかフォーカスの位置、特に最初のフォーカスの位置をコントロールしたかったが、どこを探してもその答えはなかった。

 そこで私は、発想を変えた。最初のフォーカスが最上左のボタンに来るのであれば、=ボタン(最終的には+ボタン)が、最上左に来るようにすればよいと考えたのだ。もちろん、ボタンと計算履歴の位置は変えない。そんなことをしたら、見た目が悪くなり、使い勝手も悪くなってしまう。

 Flash は、再生するフレーム(=画面)が、映画のフィルムのように順番に並んでいる。そして、実行すると1番目のフレームから順番に表示されていく。これを利用した。ユーザーが計算をする前には、計算履歴ボタンを表示しないことにしたのだ。

 履歴ボタンさえなければ、最初の↓キーで =ボタン(+ボタン)にフォーカスが移動する。そして、最初の演算子が実行されたところで、計算履歴ボタンを表示することにしたのだ。演算子ボタンを押しても、ボタン フォーカスは移動しない。今、ボタン フォーカスがあるボタンよりも、上に新しくボタンが表示されても、ボタン フォーカスは移動しないのだ。その結果、私の希望通りに、=ボタン(+ボタン)から↑キーで、計算履歴に移動できるようになった。

 では、なぜ =ボタン をなくしたのか? その話は、次回で。

□ □ □ □ □ □ □ □ □ □

今回の教訓:

 ボタン フォーカスは、最上左が一番目。以後↓キーで、上→下、左→右 の順番に移動していく。

 任意の順番でフォーカスを移動させたければ、

  • フォーカスが移動した後にボタンを作成する
  • 透明なボタンを配置して、on(rollover)、on(press)、on(release)、on(rollout) を駆使して、表示用の擬似ボタンにフォーカスがあるように見せる

などの、工夫が必要。

|
|

« Flash Lite コンテンツ製作顛末記 その4 | トップページ | Flash Lite コンテンツ製作顛末記 その6 »

テスティング」カテゴリの記事

ユーザビリティ」カテゴリの記事

パソコン・インターネット」カテゴリの記事

携帯・デジカメ」カテゴリの記事

日記・コラム・つぶやき」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/61641/16779761

この記事へのトラックバック一覧です: Flash Lite コンテンツ製作顛末記 その5:

« Flash Lite コンテンツ製作顛末記 その4 | トップページ | Flash Lite コンテンツ製作顛末記 その6 »