アクセシビリティ
デベロッパーリソース
岡田昇三氏

岡田 昇三氏

http://hi-posi.jp/

作成日:
2009年5月27日
ユーザレベル:
すべて
製品:
Adobe Flash Lite

Flash Lite入門講座 第1回 日本のFlash Liteの仕様

はじめに

このアドビデベロッパーセンターを見ている方は、PCでのFlash開発は慣れていると思いますが、「携帯Flashは制限が多くて作りにくい」というイメージを持っているのではないでしょうか? 本連載では、そうした方々に向けて、日本での携帯Flashコンテンツ開発について解説していきます。第1回目は、ざっくりとしたFlash Lite制作ガイドラインを記していきたいと思います。

日本では勝手が違う Flash Lite開発環境

「Flash Lite」とはモバイル用のFlash Playerのことで、これまでにバージョン1~3がリリースされています。Flash Liteの各バージョンは、PC向けFlash Playerのバージョンと比較すると、以下の関係となります。ただし、該当するFlash Playerバージョンの全機能をサポートしているわけではありません。

さらに注意が必要です。日本では少し勝手が違います! 日本では、アドビ システムズ社が開発したFlash Liteを元に、docomo、au、Softbankなどの各キャリアがそれぞれ機能制限を設けています。例えば、「XMLsocket通信」「flvの再生」「任意のタイミングでの外部通信」などが利用できません。そのため日本では、「キャリア別 Flash Lite」と捉えて開発に取り組むと理解しやすいと思います。

各キャリアが採用しているFlash Liteバージョンと主な特徴を表にまとめましたので参考にして下さい(2009年4月現在)。

キャリアごとのFlash Liteバージョンと主な特徴

キャリアごとのFlash Liteバージョンと主な特徴

表を見ると分かるように、すべてのキャリア/バージョンで機能制限の内容が微妙に異なっています。さらに詳しい仕様は、以下のリンクでご確認ください。

キャリア共通事項を元にした6つのガイドライン

仕事で携帯Flashを開発するとなると、多くのユーザーを対象とするケースがほとんどでしょう。そこで、下図のようにキャリア/バージョンの違いを意識せずに共通して使える部分をガイドラインとして設定したいと思います。

ガイドライン

共通事項として以下の6つを挙げることができます。

  1. . Flash Lite1.1で開発する。
  2. ファイル容量は100KBまで。
  3. 端末キーで使用できるのは、「上下」「決定」「数字(0~9,#,*)」のみ。
  4. 外部へのアクセスは、ボタンを押さないとできない。
  5. デバイスフォントのサイズは基本的に12ピクセルか24ピクセルを使う。
  6. 使用可能メモリは1MB程度。

それでは、各ガイドライン項目について解説していきましょう。

1. Flash Lite1.1で開発する

携帯Flashコンテンツの制作は、Flash Lite1.1を基準にします。Flash Lite1.1がサポートしているスクリプトは、Flash 4スクリプトと同等程度ですので、Flash 4スクリプトで開発を行うことになります。なお、「Flash 4スクリプトとActionScriptの違い」については第3回目にて解説します。

Flash Lite1.1を基準としているのは、一般に「Flash Lite1.1が最も普及率が高い」と言われているためです。この見解は、docomoがシェアの約52%と半数以上を占め、そのdocomoの普及端末の中で最も多いのがFlash Lite1.1搭載端末だという状況を基にしています。ちなみに、PC環境とは異なり、携帯端末ではFlash Liteのバージョンアップを行うことができません。

社団法人電気通信事業者協会の調査による事業者別契約数(2009年3月末)※EMOBILEを除く

社団法人電気通信事業者協会の調査による事業者別契約数(2009年3月末)※EMOBILEを除く

上記は「回線の契約数」であり、実際の端末数や割合については、正式な数が発表されていません。筆者が手掛けた携帯サイトのアクセスログ解析から見た傾向ですと、2009年5月現在、徐々にFlash Lite2.x以降の端末が増えてきてはいるものの、やはりFlash Lite1.1が大半を占めているため、Flash Lite1.1で制作するのが現状はまだベストだと言えます。

補足ですが、Flash Lite1.1と2.x以降の機能的な違いは、少し乱暴な言い方ですが、主に「ムービーの圧縮(パブリッシュ設定→ムービーの圧縮)」とガイドライン6の「メモリの割り当て量の違い」の2点です。バージョン2.x以降となれば、開発する方はドットシンタクスで行えるので楽になりますが、コンテンツを閲覧できなくなるユーザーが増えることを考えると、Flash Lite2.x以降で開発するメリットはほとんど無いと言えます。

2. ファイル容量は100KBまで

先ほどの表「キャリアごとのFlash Liteバージョンと主な特徴」を見ると分かるように、ファイル容量の制限は、docomoとau端末では最大100KB、SoftBankでは最大150KBとなります。それを超える容量のファイルは、携帯電話で表示されません。そのため、小さい方に合わせて、「100KB以内で開発する」ことになります。

ガイドライン4で解説しますが、au端末とdocomoのFlash Lite3.1搭載端末だけは「一回の通信の上限が100KB」なので、loadMovieなどを繰り返せば、メモリが許す限りいくらでも再生可能となります。

3. 端末キーで使用できるのは、「上下」「決定」「数字(0~9,#,*)」のみ

携帯Flashコンテンツで使用可能なキーは以下の通りです。

使用可能なキー

■使用可能なキー

  • 上下キー
  • 決定キー
  • 数字キー(0~9,#,*)

■使用不可なキー

  • ソフトキー
  • クリアキー
  • 通話/通話終了キー
  • 左右キー(SoftBank以外)

SoftBankでは左右キーも利用できますが、docomoとauではブラウザの「戻る」と「進む」に割り当てられているので使用しないようにします。

4. 外部へのアクセスは、ボタンを押さないとできない

外部ファイルへのアクセスは、ユーザーが能動的に「端末キーを押す」という操作をしないと実行できません。つまり、Onハンドラのpress/release/keyPressやMovieClip.onReleaseなど、PCで言うところのクリックやキーボード操作がないとアクセスできないのです。そのため、フレームアクションから自動的にload系アクションが実行されることはありません。ただし、docomoの新シリーズからは、Flash Lite3.1が搭載され、フレームから実行できるようになっています。

■外部アクセス可能なonハンドラのイベント

  • 上下キー 外部アクセス不可
  • press、release、keyPress"<Enter>"
  • (keyPress"<0>"~"<9>",<#>,<*>)

上下キーには注意して下さい。上下キーは「フォーカスの移動」となり、PCでの「Tabキー」に当たります。フォーム入力の際に、Tabキーを使ってフォーカスを移動させますが、まさにそれです。上下キーは「keyPress "<Up>"」と「keyPress "<Down>"」とも取得できず、外部へのアクセスもできません。

■load可能な容量について

各キャリア、バージョンによって仕様が変わってくるので注意が必要です。

  • docomo 1.1~3.0 … ファイルの合計容量が100KBまで。
  • docomo 3.1 … 1ファイルの容量が100KBまで、フレーム呼び出しの場合は合計100KBまで。

docomo

  • au … 1ファイルの容量が100KB迄まで。

au

  • SoftBank … 150KBまで(機種依存あり)。

SoftBank

ガイドライン2でも触れましたが、au端末とdocomoのFlash Lite3.1搭載端末は「一回の通信の上限が100KB」ですので、100KBに縛られることなく、メモリが許す限りコンテンツを読み込むことが可能です

■外部テキスト読み込み時の注意

auの場合、cgiなどから出力されたパラメータを読み込む際、ヘッダを明示的に宣言しなければなりません。たとえば、以下のようにプレーンテキストであると宣言します(php側の出力例)。

//変数print_textをFlashに返却する場合
header("Content-Type: text/plain");
print($print_text);

5. デバイスフォントのサイズは基本的に12ピクセルか24ピクセルを使う

ファイル容量を軽く収めるために、デバイスフォントを使うことが多くなると思います。しかし、デバイスフォントを使う上で以下のことを考慮しなければなりません。

  • 端末ごとに使用できるフォントサイズが限られている。
  • 端末ごとにフォントが違う。

デバイスフォントに関しては、正式なドキュメントがありません。そこで、テストファイルを作り調べることにしました。デバイスフォントでは、日本語テキストを表示することが多いと思うので、日本語フォントが何文字まで表示可能かという調べ方をしました。以下のQコードから、テストファイルを表示させてみて下さい。「あ~こ」が表示されたら10文字、「あ~そ」であれば15文字と数えます。

デバイスフォント

いくつかの端末について調べた結果が、以下の表です。表はアップデートしていきたいと思いますので、是非テストファイルを試して、筆者までコメントやメール(shozo.xxx@gmail.com)をいただければ幸いです。

テストファイルを使った、デバイスフォントの日本語表示可能文字数。各サイズの最小表示文字数をハイライト表示しています

デバイスフォントのさまざまな表示サイズでチェックしていますが、冒頭の表「キャリアごとのFlash Liteバージョンと主な特徴」にあるように、Flash Lite1.1以降で共通するサイズは、12ピクセルと24ピクセルです。また、上記表からそれぞれの最小表示文字数を見ると、

  • 12ピクセルで日本語19文字
  • 24ピクセルで日本語9文字

となり、このサイズと文字数であれば、キャリア/端末機種に関係なく同じ様に見えることになります。

6. 使用可能メモリは1MB程度

あまり知られていませんが、メモリ管理は最も重要と言ってもいいでしょう。ここで言うメモリとは、携帯電話からFlash Liteに割り当てられているメモリのことです。メモリが足りないとビットマップが赤く表示されたり、最悪の場合、コンテンツの再生が停止してしまいます。各キャリア/Flash Liteバージョンの大よその割り当てメモリは以下の通りです。

各キャリア/Flash Liteバージョンのメモリ割り当て量

各キャリア/Flash Liteバージョンのメモリ割り当て量

注目していただきたのは、auのFlash Lite1.1は「1MB~」という点です。auの初期のFlash Lite搭載端末は(W21CAなど)、Flash Liteに割り当てられているメモリ量は1MB程度なので注意が必要です。メモリを節約するには、以下のことに気を付けてください。

  • 複雑なベクターグラフィック
  • 大きい範囲のマスク処理
  • 大量のビットマップ画像
  • アルファチャンネル付きの画像
  • 線の多用
  • 大量の変数

コンテンツ制作中にメモリ使用量を確認するには、2つ方法があります。

  1. 携帯電話用のコマンドFScommand2を使用する。
    //使用メモリ = 搭載メモリ - 空メモリ
    	useMemory = fscommand2("GetTotalPlayerMemory") - fscommand2("GetFreePlayerMemory");
    	trace(useMemory)
    
  2. Device Centralで確認する。

開発中にDevice Centralのビープメモリを確認しながら調整していきます。

とは言ったものの、実際に端末で確認してみると、900KB程度しかメモリを消費していなくても、コンテンツの作り方によってはメモリ不足になることがあります。そのため、実機での確認も忘れずに行ってください。

最後に

駆け足で解説いたしましたが、制限ばかりが目立ちます。作り手としては作りづらいと思われるかもれません。ただ、現在は携帯でインターネットを利用する人が増加してきており、新しいユーザー層による新しいコミュニケーションも生まれています。是非制限に負けず、携帯コンテンツ作りにチャレンジしてみてください。

第2回目は、とりあえず作ってみようということで、待ち受け時計の作り方を紹介したいと思います。Flash Liteの再生環境から見た注意点を紹介します。

著者について

岡田 昇三氏

http://hi-posi.jp/

ワイノット株式会社、楽天株式会社、フリーランス活動を経て、2009年より株式会社hi-posi代表。「nike 6.0 mobile」「ナイキ モバロンドール」「H&M mobile」「ケートラ」「bascule helmets!」などに携わる。