JAVAC.JP
HOSHI TETSUYA 星鉄矢
2005/07/25
hossy@javac.jp
http://www.javac.jp
Google
WWW を検索 WWW.JAVAC.JP を検索

C-1 コラム - ActionScript 2.0 の意義

古くから(Flash5以前)Flashを使っている方にとっては、今更、Macromedia社がソースの方向性を変えてActionScript 2.0などという言語を作ったことに、抵抗を感じる方も少なくないと思います。実際、僕も同様に感じました。
しかし、Flashを取り巻く環境は今や、そのような変更を迫られている状態にあることも否定できません。
Microsoft社(.NET)・IBM社(Java)が俗にFlashキラーと呼ばれるようなツールを開発していたり、リッチクライアント市場におけるアプリケーションのシェア競争において、続々と開発効率のよいツールが出たりし、FlashPlayerのプラグイン率の高水準がこのまま続くことは、誰も保障できません。
クライアントアプリケーションとしてSWFコンテンツを見た場合、上記のような今後の市場争いに太刀打ちできるとは、必ずしも言えないと、僕は思いますし、Macromedia社もそのあたりを感じた上で、ActionScript 2.0のリリースに踏み切ったのではないか、と思います。
ActionScript 1.0(旧ActionScript)における問題点には、動的なメンバ追加の許容・型の緩さによるデバックの困難さ、クラス・メソッドを主体としたプログラミングを行う上での特異さ、などがありました。ActionScript 1.0ではprototypeベースのクラス作成となります。
class TestClass{
    function TestClass(){
        trace("TestClass Construction.");
    }

    function tracer(msg:String):Void{
        trace(msg);
    }
}
は、ActionScript 1.0で書くと、
TestClass=function(){
    trace("TestClass Construction.");
};

TestClass.prototype.tracer=function(msg){
    trace(msg);
};
となり、prototypeベースの独特の記載方法になります。また、レジスタークラスを行う際も、ムービークリップに#initclip文を用いてクラスを登録するなど、#include文の順番に気をつける必要があり、クセの多いものでした。
ActionScript 2.0では、クラスファイルへの記載はJavaユーザにとってなじみやすい表記になります。
(実際は、FlashPlayer6で書き出した場合、全てのActionScript 2.0ソースはActionScript 1.0ソースに変換されてSWFファイル内に格納されます。)
ActionScript 2.0では型指定を行えるため、デバック効率が上がります。また、#includeの順番で悩まされることもなくなります。(もちろんデバックに関して、十分なコンパイラーになったとは、まだまだ言えませんが、そのクラスが非dynamicである限り、想定していないメンバへのアクセスが禁止されるためコンパイルエラーを吐き出し、スペリングミスを防ぎます。また、型指定をしっかりと記述するとデバック効率が上がります。)

誤解しやすいですが、ActionScript 2.0はFlashPlayer6でも書き出せます。FlashPlayer7でなければ書き出せないと思いがちです。ActionScript 2.0はFlashPlayer7向けの言語な訳ではなくて、Flash MX 2004向けの言語、と言えます。
ですので、安心してActionScript 2.0をお使いください。




BACKTOPNEXT




All Contents Copyright (C) 2005 HOSHI Tetsuya
Home