Flex2,ActionScript3.0が優れている9の理由とAjaxとの差
2007年03月01日 プログラミングTIPS
はじめてのActionScript3.0プログラミング、ニコニコ動画みたいなものを作ってみるテストと問題点を通じて、「Flex2,ActionScript3.0が優れている」と感じた部分をあげてみます。
今まで「Flash」と聞くと、
「重い」「遅い」「ウザい」と言った印象が拭えませんでしたが、Flex2,ActionScript3.0に進化したことにより、今までのFlashのイメージよりもはるかに良いものとなっていました。
今まで「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と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をこれから学ぶ人へ
以前このブログに書いたを読めば、コンパイル環境、"Hello,world!"を表示させるプログラムコードがわかるようになっています。
また、基礎的なActionScript3.0の理解としては以下の布留川さんの本が参考になります。
ActionScript 3.0ゲームプログラミングブック
布留川 英一 毎日コミュニケーションズ 2006-11 by [Z]ZAPAnetサーチ2.0 |
[作ろう!iアプリ]1.iアプリを作ってみようと思ったきっかけの時に購入した、iアプリ開発本執筆の布留川さんの書籍なので安心して読むことができました。
コンパイル環境を揃えるのさえ面倒な人は、
というサイトでコンパイル&実行させることができます。
「Flash8より10倍早い」というのは、特にゲーム系で重宝されます。
弾幕シューティングなどのフレーム数オブジェクト数が必要な環境において、その能力が発揮されます。
XMLを使った通信などもWebサービスの拡張性に貢献します。
とりあえず、何かを作ってみて、Flex2,ActionScript3.0のすごさを体験してみてください。
追記1:Flashは検索エンジンに引っかからないという思い込み
追記2:なぜFlashは検索エンジンにひっかかりにくいのか?-SEO対策-