知ったかFlash 第二回 ~Flashだけでできる事、できない事~

どうも、kgmです。

前回に引き続き、これを知っていれば多少Flash知ってる顔ができる、「知ったかFlash」のお時間です。

前回はちょっとFlasherとデザイナーとの軋轢が垣間見えるような内容でしたが、
今回はプランナー・プロデューサー・ディレクター vs Flasher な内容です。


Flashだけで、できる事とできない事

Flashは素晴らしいツールです。
アニメーションもできるし、サーバーサイドプログラム(cgiやphp)との連携も得意です。
演算による描画もできますし、様々なクリエイティブを可能にしてくれます。

ですが、Flashも万能ではありません。Flash単独でできる事というのは限られています。
基本的にはFlashは自分の表示領域の中でしか動かないものであり、
外の領域には干渉しないのと思っていただいていいかと思います。

ここで、前提知識として知っておいて頂きたい事があります。

WEBでお目にかかる様々な技術ですが、大きく分けて
ユーザーのPC上で処理されるものサーバー側で処理されるもの
に別れ、
FlashはユーザーのPC上で処理されるものである
という事です。
HTML、CSS、JavaScript、Ajaxなどは前者、
CGI、PHP、Ruby、Pythonなどは後者です。

では、Flash単独でできる事とできない事を分けていきましょう。
できない事については、僕の場合ならこうするっていう解決策の例を提示してみます。
例としては、ノリノリなクライアントorプロデューサー相手の、通販ありのサイトを思い浮かべてください。

ズバーンとこの画像とコピーが入ってきてさ、そこでブワワァーーって光の玉とかでちゃって、ドーンとロゴ+主力商品がでてくるのよ!!
可能です。

PhotoShopやIllustrator、FireWorks(Flashだけでもできますが左記を使うのが一般的)で画像、ベクターデータを用意し、Flash上でフレームアニメーション、ActionScriptを駆使すれば可能です。
もちろん、表現に凝るのであれば相応の労力を伴います。

でさ、ロゴと商品でたらグワッって枠がひろがってロゴと商品も飛んでって、そこから商品紹介のページがでてくるとかどう!?
不可能です。

といっても、その言葉の通りの事をすればですが。
Flashはあくまで独自の描画エンジンに従って動作しますので、完全なWEBページレンダリング(描画)する事はできません。
なので、WEBページをFlash内で描画することはできません。(HTMLには対応していますが、WEBページという程の物を描画する例はあまりありません。)

解決策
WEBページのキャプチャ画像をアニメーションし、アニメーションが終わった時点でページ遷移をすることで同様に見せる事は可能です。画像を駆使すれば結構なんとでもなります。

でさ、商品が立体的にぐるぐるまわったり、カテゴリ別に整列できたりしてさ、サクサク欲しいもの探せちゃうのよ!
可能です。・・・が、一応可能、というレベルです。

というのも、Flash単独で行うのが効率的ではないからです。
立体的にぐるぐるまわったり・・・というのはFlashが得意とするところです。
商品が気持ちのいい動きで並び変わったりするのもFlashの得意なところでしょう。
しかし、整列させるためのカテゴリ分けや探すための検索については、Flash単独でも可能なのですが、
データベースやPHPを併用したほうがぐっと効率がいいかと思われます。
これについては、商品の更新・管理なども関ってくるからなのですが。
更新頻度も低く、商品数も本当に大したことない!という場合はFlash単独でも問題ないと思います。
しかし、頻繁に更新・追加・削除があり、商品数もそれなりの数になってきた場合は、
それらの情報をFlash内に記述しなおし、パブリッシュ(swf化)する作業が必要になってきます。
これは非常に非効率であり、ミスも起こりやすくなります。
与件をしっかり整理し、適切な判断が必要になります。

でさ、気に入った商品を買い物カゴにドラッグ&ドロップでポイポイできて、ドーンと一括購入できちゃうんよ!
もちろん不可能です。

買い物カゴにドラッグ&ドロップでポイポイはできます。
が、一括購入するためには決済システムと連携する事が必須です。
FlashはユーザーのPC上で処理を行うものですので、サーバーサイドにアクセスするためにはCGIやPHPなどの力を借りなければなりません。
ちなみにFlash単独では、サーバー上の単純なテキストファイルの編集もできません。

解決策
決済システムを用意し、Flashと連携させるフローを構築しましょう。
システム側と綿密な打ち合わせを行い、Flashで使用する事を前提に
システムを構築・カスタマイズして実現させます。

でさ、付加要素として自分のアバター持てたり、時間とか天気表示させたりしちゃってさ!
半分可能です。

まずアバターですが、これはFlash内に用意された数種類のアバターを組み合わせて選択・表示させることができます。
で、ここで問題になるのが次回訪問時です。
前回つくったのが維持されてなければ意味がありません。
このサイトがSNSのようなユーザー間コミュニケーションがないのであれば、
Flashに用意されているSharedObjectという物を使えば次回訪問時も同じアバターを表示できます。

このSharedObjectと言うものですが、ブラウザについているCookieという物のFlash版と考えてください。
Flash専用の記憶領域をユーザーのPC上に設けるものです。
これがなかなかに便利で、ゲームのセーブデータや、サイトへの訪問回数などを記録できたりするわけです。
しかし、ユーザーのPC上にしかないため、当然他のユーザーからは見えません。
アバターを他のユーザーにも公開するためには、サーバーサイドにアバター情報を保存するしかありません。

時間についてですが、ユーザーのPCに設定された時刻を表示するのであればなんら問題ありません。
しかし決済システムの営業時間などと絡んだり、全ユーザーが同時間帯でないとマズイような場合は、
サーバーサイドから正確な時刻を取得させる必要があります。

天気についてですが、Flash単体では完全に不可能です。
天気情報をサーバー上に更新してくれるようなサービスを用意するか、天気情報を提供しているAPIなどを使うしかありません。
ちなみに天気情報は、商用利用だと有料なものしかないと思われます。

解決策
サイトの性質、目的等から機能に優先順位を付けていき、労力・費用に見合わないものは削るように調整します。
これについては、クライアントやプロデューサーと綿密に打ち合わせる必要があります。

というわけで、書いてて誰が読むんだというくらい長ったらしくなってしまいましたが、
案件受注時には本当によくある話です。
できるだろって思って軽返事をし、自社に持ち帰ってえらいこっちゃなんて笑えません。
とかくシステム構築はお金も時間がかかります。
これはシステムが必要だ!というのを嗅ぎ分ける嗅覚は、本当に大事です。

では、やっとの思いでまとめです。

・Flashはサーバーサイドができないので、システムが絡むと当然システム人員が必要だよ
・両者の連携は実装もデバッグも時間かかるよ
・結構クリエイティブ合気道で返せる事も多いよ
・そのために相手の目的を汲み取り、代案、すり替え案を提案できる知識は大事だよ

ってお話でした。

ぶっちゃけ、駄エントリな気がしてきました。

次回は・・・・
「ちょっとまった、SharedObjectって便利だけど、本当に大丈夫!?」

で行こうかなと思ってます。
変わるかもしれません。すいません。

本当にありがとうございました。

コメントをどうぞ

トラックバック URL

トラックバック