DESIGNMAP

Flashは本当にすたれるのか

記事公開日:2011年12月07日

雑記

昨年のHTML5ブームやFlashが再生されないiPhoneの登場から、Flashはすたれるんでしょうか?という声をきくようになった。Flashは多様なユーザーに使われているツールである。HTML5以前から、既にすたれてしまった分野、今後もおそらくすたれにくい分野、予測が難しい分野がある。冷静に議論しよう。整理のために、Flashを次の側面にわけてみたい。

1. リッチユーザーインターフェイスをつくるツールとしてのFlash
2. アニメーション制作ツールとしてのFlash
3. アプリケーション開発ツールとしてのFlash
4. ActionScript3.0という言語
5. Flash Player(PCのWebブラウザ用、モバイルのWebブラウザ用、PC向けアプリ、モバイル向けアプリ)

Flashがすたれるといわれる場合、上記のどの側面がすたれていくのかを判断しないといけない。上記のすべてが、すたれるという話なのだろうか。

リッチユーザーインターフェイスをつくるツールとしてのFlash

1のリッチユーザーインターフェイスはHTML5やiPhone以前から、とっくにすたれ始めている。たとえば、ドロップダウンメニュー(メニューにマウスをのせると、サブメニューがあらわれる)は、2004年頃はまでは、Flashでつくるケースもあるにはあった。

いまは、jQueryでつくるだろう。jQueryをつかうと、かつてのDHTML(ダイナミックHTML、JavaScriptで動的にHTMLを書き換える技術)の頃より、少ないコード量で、多くのブラウザで動くコードを実装できる。フォトアルバム、スライドショーもいまは、jQueryでつくる。実際に、スライドショーを実装すると、HTMLとCSSと連携できるので、純粋にロジック部分の処理に集中できる、というメリットがある。

リッチユーザーインターフェイスでFlashが廃れるきっかけになったのは、2005年のAjax(エイジャックス)と、JavaScriptライブラリ(とりわけ2006年のjQuery)の普及である。JavaScriptベースでつくるメリットは、構造(HTML)、見栄え(CSS)、ふるまい(JavaScript)の3構造を役割分担して、分離してつくれる点だ。

Ajaxは、画面全体の再読み込みをせず、画面の一部のHTMLやCSSがきりかわっていくウェブアプリケーションである。Twitter、Amazon、Evernoteなどのサイトでも普通につかわれている。データの保存処理をしても、アプリケーション全体が固まったり、待ったりする必要がない。デスクトップアプリのような使いやすさをえられる。Webブラウザの舞台裏でサーバーと通信をおこない、データを受け取り、スムーズに画面の表示を書き換えていくような処理をおこなう。サーバーとの非同期通信とDHTMLを組み合わせた技術である。このようなインターフェイスはかつて、macromedia社もRIAという名前で提唱していた。RIA制作ツール、実行環境ツールとしてFlashを推していた。

このようにリッチユーザーインターフェイスの実装は、JavaScriptベースが主流である。まだこの分野でFlashベースの開発が残りそうなのは、会議室システムなどのビデオをつかったアプリケーションや超リッチな表現力を要求されるゲームだろう。

アニメーションツールとしてのFlashはしぶとい

一方、今後もすたれにくいと予想されるのは、バナーやムービーなどの純粋なアニメーションツールとしてのFlashである。Flashでアニメーションをつくり、書き出し形式が、swfではなくJavaScriptベースかcanvasになるのが通常になるだけの話だ。

ただ、Flash4の時点で、シーン機能、オニオンスキン、グラフィックシンボルをつかったフレームの制御(開始フレームの設定など)などのアニメーター向けの機能は出そろっている。ベクターベースのアニメーション制作ツールとしては、圧倒的に強く、今後も生き残るだろう。皮肉なことに、アニメーター向けの機能はFlash5以降、メーカー側が軽視してきた分野でもある。

ECMA準拠からはずれてしまったActionScript3.0

ActionScript3.0は未来のJavaScriptを先取りする先行実装だった。ActionScript1は、ECMAScriptに準拠する言語として発表された。ActionScript3.0はECMA-262 Edition 4 の完全準拠を目指して発表された。一方で、YahooなどがECMA-262 Edition 3.1のワーキンググループをスタートさせて、結局、ECMAはAdobeがActionScript3.0で実装した仕様を採用しなかった。ActionScript3.0はまぼろしの未来のJavaScriptになってしまった。

メーカーが先行実装して、普及した場合、後付けで標準化されていったり、メーカー側のフライングで終わるのがWeb技術標準化の歴史である。このあたりのせめぎあいは入門HTML5の第1章の「標準はどのように作られるか、という長い余談」がおもしろい。この本の中で、マーク・アンドリーセン(MosaicというWebブラウザをつくった人)とティム・バーナーズ=リーたちのHTMLの仕様の議論が紹介されている。最後は、imgタグをマーク・アンドリーセンがMosaicで先行実装するというくだりを紹介している。

現在のAdobeのFlash Playerの発表をみる限り、ECMA準拠にこだわらず、ActionScript3.0をさらに独自進化させてゆく方向になりそうだ。

ActionScript3.0の勉強をおすすめする理由

ActionScript3.0は勉強する価値がある言語だ。理由は深いレベルまで学べる良書がでているからだ。あともうひとつは、技術者が少ないというのもメリットだ。ActionScript3.0を深いところまで学ぶことで、他の技術への移行も楽である。例えば、canvasはJavaScriptベースの技術だが、コードは似ている。

深いレベルまで学べる良書を紹介したい。『Foundation ActionScript 3 Animation』と『Foundation ActionScript 3.0 Image Effects』は名著である。前者は、数学・物理をつかったアニメーション表現の本で、後者は画像処理の基礎が学べる本である。どちらも、難しいことを分かりやすく解説してくれる。どちらも翻訳本がでている(『ActionScript 3.0 アニメーション』、『ActionScript 3.0 イメージエフェクト』)。この2冊が楽しめるだけで、ActionScript3.0を学ぶ価値があるだろう。

ゲーム開発に興味がある方は、『Foundation Game Design With Actionscript 3.0』が入門書としてわかりやすい。初期のマリオブラザーズのようなゲームを最後につくる。こちらは、第1版は翻訳本(『Flashゲームテクニック』)がでている。

ActionScript 3.0は深いレベルにいけばいくほど楽になる言語である。そのかわり、最初の学習コストが高く難しくみえるのが教育向けとしては難点だ。

モバイル向けのアプリケーションとしてのAIRは今後も開発が続く

Flash Playerは分類がややこしい。Webブラウザ用のFlash Playerとアプリ用のFlash Player(こちらは区別してAIRと呼ばれる)に大きく分けられる。それぞれに、PC向け、スマートフォン用にわけられる。
PCのWebブラウザ向けのFlash Player、モバイルのWebブラウザ向けのFlash Player、PC向けのアプリケーションとしてのAIR、スマートフォンのアプリケーション用のAIRに分類できる。

話題になった2011年11月に発表されたモバイル向けFlash Player開発中止の記事は、モバイルでのWebブラウザ用のFlash Playerのことである。注意しないといけないのは、モバイル向けのアプリケーションとしてのAIRは今後も開発を続けるという点だ。

よくいわれるFlashは廃れるという話を整理すると今回のようなややこしく、つまらない話になってしまいます。

結局、記事はまとまらなかったですw ただ、Flashをめぐる話があまりにも混乱しているので、整理しておくという目的で作成しました。

↑このページの上に戻る