インタビュー第4回バナー
インタビュー第3回バナー インタビュー第2回バナー インタビュー第1回バナー

Flash Lite 1.1 にはじめて触れる人のためのまとめ
データ受け渡し編

macromedia flash embeded

昨今の携帯ソーシャルブームで Flash Lite 1.1 を
初めて触ることになってる人も多いかと思います。
もうそろそろ寿命な技術って気もしますが、
現状で対応しないといけないのは事実。

そういう自分もまさにこのカテゴリに属していて、
まあ、噂には聞いていたわけですが、実際触ってみて
あれこれビックリしたので、まとめておこうと思います。

苦労してきた人には「今さら」情報だと思いますが、
ActionScript3.0しか知らないような人には驚愕の世界なんですよw

言語仕様関連についてはこちらにまとめています。

Flash Lite 1.1 にはじめて触れる人のためのまとめ 言語仕様編

ブラウザの Flash のつもりであれこれ仕様の腹積もりをしていると
一番最初に頭をかかえるのが動的なデータ受け渡しの問題。
実行時にパラメータをサーバに問い合わせて、
さらに必要な画像をロードしてやれば、容量小さくても
まあそこそこ行けるよ、と、まあ普通思いますよね。

ところが、 Flash Lite 色々ロードしようとすると
次のような問題や不便にぶちあたります。

・外部データへのアクセス関数はキーイベント内でしか機能しない
・しかも一回のイベントで一回のロードだけ
・loadMovieで .swf ファイルしか読めない

外部データへのアクセス関数とは loadVariables や loadMovie、
getURL などです。ということで、例えば背景と敵の情報を
loadVariables で取得して loadMovie でその画像を読み込もうなんてすると、
それだけで3回もユーザーにキーを押させないといけない。
そんな仕様ありえないw

でも、キャリアのサイトをよくみると確かに書いてある。
例えば docomo はこんな感じ。

iモード向けFlashの特徴 : ファイルの取得

ちなみに記述は下記のような感じ。

TUNK DEVELOP : 【FlashLite1.1】Flash Lite 1.1における外部データ読み込み

タイムラインじゃなくてボタンに書かなきゃいけないのを忘れずに。
そういえばキーイベントもボタンに記載するってのもありました。

本当なので仕方ないそんな仕様の回避方法はこんな感じ。

・条件の組み合わせの分だけ .swf を用意
・ユーザが自然にキーを押せるシナリオをつける
・再生時にサーバで .swf に動的に変数を埋め込む
・再生時にサーバで .swf に動的に画像を埋め込む

全部の組合せを .swf で用意しようってのは荒っぽいですが、
サーバ側で動的に何かするわけではないので、
常識的な数なら負荷的にもやる価値はあったりします。

ボタン操作に自然なシナリオについては
Flash 演出の際に何かセリフを喋らせたりすれば、
数回のキー入力は可能だと思いますが、再生頻度の多い演出だと
ユーザの面倒になっちゃう。

そんなわけで .swf を全パターン用意するのが現実的でない場合は、
動的な .swf 生成をすることになります。

変数の埋め込みについては下記サイトが参考になります。

mitukiii.jp : PHPからFlash Lite 1.1のバイナリに変数を埋め込んで出力する
FACEs : 携帯Flash (FLASH Lite 1.1) へ普通にパラメータを渡す

みるとわかりますが、本当にバイナリに変数を埋め込みます。
flash がすごくシンプルな設計であることがわかりますねw

画像の埋め込みは更に面倒。
いくつか方法がありますが、 swfmill を使って
.swf を .xml に変換してから当該画像部分を差し替えて .swf に
戻すのが汎用性が高くてよさそうです。

swfmill swf2xml and xml2swf
携帯サイトをつくろう : swfmillでケータイFlashを動的生成してみよう
tmty.jp : ケータイサイトでFlashLiteコンテンツを動的生成する

swfmill では画像データが mime encode されるので、
埋め込む画像データも一回 .swf に埋め込んでから swfmill で .xml に変換して
mime encode されたデータを抜き出して用意しておく必要があります。
あるいは純粋にワンキーで画像をロードさせる場合も画像を .swf に変換しておかないと
loadMovie で読めません。
そんなわけで、画像を .swf に変換する場合はここが参考になります。

SWFTOOLS
Snow Fairy★ : GIFアニメをFlash(SWF)に一発変換する

このくらいあるとようやく状況にあった flash 演出を
ユーザに届けられる環境ができます。

あと、動的生成した .swf が au だけ上手く表示できない
問題がたまに出るかもしれません。
下記とか。そのへんもこころに留めておくと
慌てることなく開発できると思います。

1ka2ka.com : AU で loadVariables() が動かない・不具合の解消法 (Flash Lite 1.1)
posted by てらじろ at 2010年10月30日 22:26 | Comment(0) | TrackBack(0) | 技術関連 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。