アドビFlashの8(7もだったかも)とかCS3の「ヘルプ」からわかる範囲なので最も基本ですが、
Flash Lite 1.0(国内ではDocomoのFoma前とFomaになったばかりの頃2003年に登場した機種)では外部のデータを読み込むことができない。
外部というのはネットワーク越しにあるサーバー上のデータをHTTPで取得できないということで、そんなことをする必要のないGIFアニメのようなものとしてFlashは登場したという印象。もちろんユーザーの入力は受け付けるので、通信が必要ないゲームなんかはつくれるけど、考えてみると自分は今まで一度も作ったことがないかもしれない。
2005年に登場したFlash Lite 1.1はそれと違って通信してサーバーからデータを取得できるが、取得できるのはテキストか、別のFlashコンテンツとなっている。JPEG、MP3、FLVといった画像、音声、動画は持ってくることができない。サーバーサイドでFlashコンテンツ生成するという技術が時々使われるが、なぜ必要になるかというとこれが1つの理由で、JPEGのような画像をサーバー側でSWFに変えてしまわないと、ロードできないというわけです。
それと、これはFlash Lite 1.1の仕様なのかちょっと知らない部分ですが、PCのFlashだと、HTMLの中のobjectタグでFlashVarsというFlashに値を渡すパラメータが指定できたり、abc.swf?p=1&u=2のようにクエリストリングをつけることで、Flash起動時のパラメータを渡すことができるのですが、これができない。
というかクエリストリングはできるって情報を一度ウェブで見かけたのですが、うそだろ絶対。というかもしできるなら誰かやり方教えて。万が一できるなら今まで自分がやってきたことや、言ってきたことが間違っていたことになってしまうし、自分もいろいろ試した上で、やっぱできないということを確認しているつもりなので、できないと思っていますが。僕が間違っていたら申し訳ない。
なので、セッションIDみたいなものをFlashに持たせることができないわけです。これが著しく困り者で、一旦Flashが全面で動き出したとたんに、セッションがわからなくなってしまう。(ドコモはクッキーが無いのでそうなる)それで生成サーバーでセッションIDを埋め込んでやるみたいなことが必要になったりするわけです。(必ずしも必要というわけではないのですが、生成サーバーは便利です。)
生成サーバーの必要性については、また別途いろいろありますが、それについてはキャリアの設定する仕様に寄る部分もあり、また別の機会に書こうと思います。そもそも生成サーバーを作るとか、運用するというのもいろんな面でコストがかかりますが、これも僕の知っている範囲でまとめてかこーかなあと思います。
この他実際に作る人にとっては結構メンドウなのが、indexofのように、文字列の中から文字列を検索する関数がない。なのでCSVのようにデリミタで情報を区切っておいて、読み込んでうんぬんするといったことも現実的ではないです。もちろんXMLを解釈する関数はなく、そのためRSSリーダーのようなものを作るには、一旦サーバー側でFlashが読み取りやすい形式に変換してやらないとならないです。
この他プログラムが古い時代のFlashのものなので、ユーザー定義関数を使うことができない。ムービークリップを変数に入れて渡すことができない。そもそも配列というものは存在しない。これらは作っていて実にめんどくさい部分です。
上記はFlash Lite 1.1までのこと。
Flash Lite 2.0は最大シェアのDocomoが未だに採用していないのと、他キャリアもまだ登場して1年経っていないため、広くユーザーに使ってほしいものはやっぱり1.1でつくることになると思いますが、ともかく2.0については、また次回とかまとめようと思います。
追記:シェア情報があった Flash搭載端末のシェアも
いま最もネットにアクセスしている携帯電話機種は?--ビートレンド調査 (2007/08/24)
AS2.0ならいろんなことでるんじゃない?と思う人も多いかもしれませんが、2.0でも作れる物はそれほど変わらないと思います。もともとそんなに大規模なアプリが動くわけでもないケータイFlash Liteだし、1.1でもそんなに開発工数や出来上がった結果はかわらないだろうと思う。もちろん2.0の方が作る人にとっては好ましいはずですが。
コメント