ZAPAnet総合情報局 > ZAPAブログ2.0 > Flex2,ActionScript3.0が優れている9の理由とAjaxとの差

Flex2,ActionScript3.0が優れている9の理由とAjaxとの差

2007年03月01日 プログラミングTIPS
はじめてのActionScript3.0プログラミングニコニコ動画みたいなものを作ってみるテストと問題点を通じて、「Flex2,ActionScript3.0が優れている」と感じた部分をあげてみます。

今まで「Flash」と聞くと、
「重い」「遅い」「ウザい」と言った印象が拭えませんでしたが、Flex2,ActionScript3.0に進化したことにより、今までのFlashのイメージよりもはるかに良いものとなっていました。

Flex2,ActionScript3.0が優れている9の理由

Flash8に比べ、実行速度が10倍も早い
「今までより10倍早い!」と言われれば、プログラマーなら誰もが興味を持ってしまうすごさです。AS2からAS3に進化したことにより、10倍速が実現されました。
本格的なオブジェクト指向言語である
オブジェクト指向開発により、わかりやすく再利用可能な形で開発しやすくなっています。Javaとも似ているため、ケータイ向けJavaアプリなどからの移植も比較的簡単です。
コンパイラが公式で無料配布されている
今までのFlash開発環境と違い、Adobeから無料でコンパイラが配布されています。これは心強い点です。有料の統合開発環境もあります。
Webブラウザから実行できる
Flashはユーザーが利用するWebブラウザの90%程度にインストールされているそうです。新バージョンのFlashも下位互換になっているため、保守しやすくなっています。
OSに依存しない
IE、Firefox、Operaなど多くのWebブラウザに対応しているため、対象のOSを気にすることなく、とても開発しやすい状況にあります。
XMLとの連携が容易
ネットワークを通じたサーバー間のやりとりも、内蔵のXMLクラスを使えばXML生成・XML解析も簡単です。Webサービス開発にも使えます。
動画ストリーミングに適している
FLVファイルやSWFファイルをストリーミング表示させることができます。もちろん画像ファイルやサウンドファイルも扱え、ソケット通信にも対応しています。
ベクタとラスタによる描画機能
ベクタで描画すれば拡大縮小をしてもきれいな画像を表示できます。写真やJavaアプリからの移植をするときなどはラスタ描画でも取り扱えます。
MXMLファイルを扱える
AS3にこだわることなく、MXMLからもSWFに変換することができます。Adobeの方でサンプルが紹介されているので見てみましょう。→Adobe Flex 2 Component Explorer


Ajaxが流行した理由

今Web業界ではAjaxが流行っています。
ですが、個人的にはAjax開発はあまり好きではありません。
なぜなら、ブラウザ依存の部分が大きすぎるからです。
特定のブラウザに絞って開発するのであれば比較的簡単ですが、全てのブラウザに互換性を持たせようと思うと、プログラミング、動作確認テストそれぞれが負担になります。
この負担を乗り越えて、多くのAjaxサイトが生まれています。

では、一度は廃れたJavaスクリプト開発がここまで盛り返した要因は何でしょうか?
コンピュータの処理能力が格段にアップして快適な操作性になった
通信速度が飛躍的に速くなった
プラグイン不要でWebブラウザから利用できた(てきとさんの指摘により追加)
GoogleがAjaxを利用した便利なWebサービスを作り上げた
ページ遷移のないサイト作りが可能だった
視覚効果の大きいサイト作りが可能だった
この辺りが引き金になってAjaxサイトが流行っています。
ブラウザの互換性、デザインとコードの分離にも問題点がありますが、フレームワークなどを利用して何とか開発しやすい環境に持って行っています。
それでも開発には開発コスト・保守などの問題点が残ります。


流行のAjaxとFlashとの差

次に、このAjaxとFlashを比べてみます。
今までFlashが「重い」「遅い」「ウザい」と感じてしまった要因は何でしょうか?
コンピュータの処理能力が低くてFlashをまともに再生できなかった
通信速度が遅く読み込むのに時間がかかった
視覚効果の大きいサイトを作るあまり、操作性が犠牲になった
便利なWebサービスがそれほど存在しなかった
この辺りが問題でした。

ですが、現在の環境はどうでしょうか?
コンピュータの処理能力が格段にアップして快適な操作性になった
通信速度が飛躍的に速くなった
GoogleVideo、YouTubeなどの便利なFlash利用サイトが生まれた
という大きな武器があります。
そして、Flex2,ActionScript3により実行速度も10倍速になっています。
何よりも、Javaスクリプトに比べ、ブラウザの互換性を気にしなくて良いのが一番の強みです。
Ajaxが流行っている理由の「ページ遷移のないサイト作り」「視覚効果の大きいサイト作り」など、簡単に実現できます。
あとはユーザーが利用しやすいようなサイトを心がければ、Ajaxサイト以上の利便性がもたらされるはずです。

一時期廃れたJavaスクリプトが盛り返したのと同様、最近元気のないFlashもFlex2,ActionScript3の登場により、これから伸びていく分野だと思います。
通常のWebサイトにも商業用のWebサービスにもゲームにも動画サイトにも…様々な分野でFlashサイトが生まれるだろうと思います。


Flex2,ActionScript3.0をこれから学ぶ人へ

以前このブログに書いた
はじめてのActionScript3.0プログラミング
を読めば、コンパイル環境、"Hello,world!"を表示させるプログラムコードがわかるようになっています。

また、基礎的なActionScript3.0の理解としては以下の布留川さんの本が参考になります。
ActionScript 3.0ゲームプログラミングブック
布留川 英一
毎日コミュニケーションズ
2006-11

by [Z]ZAPAnetサーチ2.0
開発環境の準備方法、ActionScript3.0の文法(変数、クラス、オブジェクト、ループ、条件分岐、配列など)、描画・マウス・キー入力、描画処理・動画ストリーミング、データ保存・ネットワーク読み込み、ソケット通信、プリンタ・Webカメラ・マイク、シューティングゲーム・アクションゲーム・ネットワークゲーム作成などの情報が網羅されています。
[作ろう!iアプリ]1.iアプリを作ってみようと思ったきっかけの時に購入した、iアプリ開発本執筆の布留川さんの書籍なので安心して読むことができました。

コンパイル環境を揃えるのさえ面倒な人は、
The Flex Online Compiler
というサイトでコンパイル&実行させることができます。

「Flash8より10倍早い」というのは、特にゲーム系で重宝されます。
弾幕シューティングなどのフレーム数オブジェクト数が必要な環境において、その能力が発揮されます。
XMLを使った通信などもWebサービスの拡張性に貢献します。

とりあえず、何かを作ってみて、Flex2,ActionScript3.0のすごさを体験してみてください。


追記1:Flashは検索エンジンに引っかからないという思い込み
追記2:なぜFlashは検索エンジンにひっかかりにくいのか?-SEO対策-

関連リンク:

ActionScript3.0の速さを体感してみよう!
はじめてのActionScript3.0プログラミング
ニコニコ動画みたいなものを作ってみるテストと問題点
Adobe Flex 2 Component Explorer
The Flex Online Compiler
ActionScript 3.0メモ
Onegame - Flash Player 9とActionScript 3.0でゲーム製作
無償版含むFlex 2登場、「アドビに1円も払わず本格的Webアプリを開発」 − @IT