Flash Liteのまとめと今後
1フレーム目に決まって記述するスクリプト
Flash Lite 1.1の制作をする際に、1フレーム目に決まって記述するスクリプトがあります。初期化処理と考えてもらえると分かりやすいと思います。
fscommand2("FullScreen", true);
fscommand2("SetQuality", "high");
_focusrect = false;
1行目の「fscommand2("FullScreen", true);」は、コンテンツの表示領域を全画面に表示させます。携帯で閲覧した場合、基本的には全画面で表示されることとなるのですが、Adobeで配布されているCDKのサンプルにも、同様に記述されているため合わせて記述する傾向が強まっています。
2行目の「fscommand2("SetQuality", "high");」はアニメーションのレンダリング画質の設定となります。「high/medium/low」と3段階あります。画質を高くすると負荷も大きくなってしまうため、アニメーションの多いコンテンツなどは「medium」に設定した方がスムーズに動作する時もあります。
3行目の「_focusrect = false;」はボタンフォーカスの設定です。Flash Liteの場合は基本的にマウスが存在しません。そのため上下でステージに配置しているボタンを選択できるようになっているのですが、ボタンが選択された時、ボタンの周りに黄色の枠線が表示されます。
しかし、大抵はボタンシンボルでオーバーの描画を行う場合が多く、黄色の枠線の表示がなくても選択しているボタンが認識できるため、フォーカス表示が不要となるケースがあります。もし、フォーカス表示が必要であれば、スクリプトを削除するか「false」に設定しておきましょう。
外部通信について
Flash Liteコンテンツで外部通信を行う際には、キーやボタンのイベントを取得した時のみ外部通信が可能という制限があります。これは、ユーザーが知らない間にパケット受信(課金)をさせないようにしているためです。
対象となるメソッドは、getURL()、loadMovie()、loadVariables()等の関数になります。これらの関数を使用する場合は、onハンドラ内に記述する必要があります。
on (press){
getURL("http://www.thinkit.co.jp/");
}
また、その時に実行できる通信処理は1つとなりますので、2つ記述することができません。
on (press){
loadMovie("a.swf");
loadMovie("b.swf");}
loadMovie()についてですが、Flash Lite 1.1はFlash 4に準拠していますので、画像データは読み込むことができません。swfファイルのみ読み込み可能となります。
また、図1のようにloadVariables()でPHPやCGIなどと連携して、返り値を取得することもできます(詳細は割愛)。サンプルファイルを用意したのでこちらからダウンロード(http://www.thinkit.co.jp/images/article/144/5/14451.zip)をしてください(14451.zip/17.4 KB)。このサンプルでは、loadVariables()を使用する際の注意点をピックアップして解説しています。
まず、1つ目の注意点として、loadVariables()を使用する時にHTTPメソッドを指定する場合は、auとSoftBankの一部機種ではPOST通信ができないものがあるため、特に理由がない限り「GET」通信をおすすめします。
on (press) {
loadVariables("db.php", _root, "GET");
}
そして、図1の「(3)PHP処理」で注意してほしいのは、ヘッダーの出力を行わないと、auでは正常に返り値が返ってきません。
そのほか、loadVariables()で外部テキストを読み込むことも可能です。ただし、XML形式には対応していませんので、下記のような記述をします。
変数1=値1&変数2=値2&変数3=値3&……%loadEnd=1
上記の「loadEnd」の変数は、Flash Lite 1.1ではダウンロードの進行状況が把握できないため、外部テキスト読み込み後にループ処理などを行い、「loadEnd」が1になったらダウンロード完了という処理を行います。