第 1 回 開発環境のインストールと Flash 画面の表示 その 3
Flash Lite の制限
Flash Lite は、パソコンの Flash と動作条件の異なる(いわばより厳しい)環境において動作するため、Flash MX と比較しても、大きく異なる点がいくつもあります。ここでは、その違いや注意点について触れます。
ファイルサイズに注意
SWF ファイルのサイズが制限されています。これは、iモードに内蔵のブラウザが一度に読み込めるデータ容量の上限が 20KB であるためです。さらに SWF ファイルを CHTML に組み込んで表示する場合は、ページを構成するファイル全体の合計が 20KB を超えないようにする必要があります。
ただし、SWF ファイルを単独で表示する場合は、20KB をそのまま SWF ファイル容量の上限と考えることができます。
また、実行時のメモリサイズは200KB(505i シリーズの場合)が保証されますが、ファイルサイズがメモリサイズのどちらかが、条件から外れてしまうと、Flash は正しく表示されません。
Flash Lite の Player は、iモード端末で動作することをふまえ、入力装置(マウス)の制限やセキュリティに配慮するため、機能自体に制限を設けた形で実装されています。Flash Lite の基本のバージョンは Flash 4 です。シンタックスは、Flash MX でのオーサリングを考慮して、MXに近いのですが、実装レベルの機能は、バージョン4 が基準になっているため、現在のFlash MXなどと比べると以下のような機能の違いがあります。(詳細は、「Flash Lite for i-mode Authoring Guidelines J」をご覧ください)
サポートされない大きな機能
- SWF 読み込み・・・LoadMovie によって外部SWFを読み込むことはできません
- ドラッグ・・・マウス操作ができないためサポートされません
- MP3 / ADPCM サウンド・・・サウンドは、MFiという i モード専用サウンドを使用します
- 入力テキスト・・・サポートされるテキストフィールドは、静止テキストとダイナミックフィールドのみです。ダイナミックフィールドは、スクロール (scroll、maxscroll) もサポートされません
- コアオブジェクト・・・Flash 4 ベースのため、Array、Math、MovieClip、Date などのオブジェクトがありません。 例外として、Math.cos() などの定数が存在します
アクションとプロパティのサポート/非サポート一覧
サポートされるアクション
// , . "" -- ++ + += - -= * *= / /= = < <= > >= <> % %= || ! && ?: add and break call case chr() continue do... while duplicateMovieClip else else if eq eval() ge getProperty() getTimer() getURL() gotoAndPlay() gotoAndStop() gt if ifFrameLoaded() int() le length() lt mbchr() mblength() mbord() mbsubstring() ne nextFrame() nextScene() on() ord() play() prevFrame() prevScene() random() removeMovieClip() set() setProperty() stop() stopAllSounds() substring() switch() tellTarget() toggleHighQuality() trace() while()
サポートされるプロパティ
/ : _alpha _currentframe _focusrect _framesloaded _height _highquality _level _name _rotation _target _totalframes _visible _width _x _xscale _y _yscale
サポートされないアクション (Flash 4 と比較した場合)
fscommand() loadMovie() loadMovieNum() loadVariables() loadVariablesNum() Number() startDrag() stopDrag() String()
サポートされないプロパティ (Flash 4 と比較した場合)
_droptarget maxscroll scroll _soundbuftime _url
動作に条件があるアクションとプロパティ
- getProperty()・・・サポートされるプロパティのみ取得可能です。
- getURL()・・・プロトコル http、https、mailto、および tel がイベントアクションごとに1 回だけサポートされます。1つのボタンから実行できるのは最初のgetURL()アクションだけです。
- on(イベント)・・・イベントは keyPress、press、release、rollOver、および rollout です。i モード用の Flash Lite でサポートされているキーは、0 ~ 9の各キー、* キー、# キー、上下および Select キーです。
- setProperty()・・・サポートされるプロパティのみ設定可能です。
- _highquality・・・ビットマップは対象外です。また、デフォルトの画質設定は中です。
Flash 4 では無かったがサポートされるアクション
++ -- += -= %= *= /= .(ドット) switch
... case || ! &&
その他
- 文字列の連結は、add を使用し、数値の加算には+を使用します。
- 文字列の比較には、eq、ne、gt、ltを使用し、数値の比較には、==、<>、>=、<=、>、<を使用します。
- getURL() 実行時の URL エンコーディングや escape() 関数はサポートされていません。
- 有効な整数値の範囲は -2,147,483,648 ~ 2,147,483,647 です。
- 配列はサポートされていません。eval() を使用して配列をエミュレートします。
- function() は、call() を使用します。ただし、引数、戻り値は使用できません。
- Math.acos()、Math.asin()、Math.atan()、Math.atan2()、Math.cos()、Math.pow()、Math.tan() の定数は、使用できます。
アクションについては、この連載の第 2 回で具体的に解説する予定です。使用できない機能もありますが、配列 (Array オブジェクト) などは、その代わりになるテクニックなどもあります。最初に必要十分と申し上げたのは、シンプルな機能ですが、上手に組み合わせれば複雑なコンテンツを制作することも可能だからです。