ActionScript3.0は意外と楽そう

ActionScirpt3.0のサンプルコードを見ると、”JavaC#っぽいコード”という印象を受ける。例えば、HelloWorldを表示するサンプルは以下のような感じ。

package {
    import flash.display.*;  
    import flash.text.*;  

    //HelloWorld
    public class HelloWorld extends Sprite {
        //コンストラクタ
        public function HelloWorld() {
            //テキストフィールドの生成
            var textField:TextField=new TextField();
            textField.text="Hello World!";
            addChild(textField);
        }
    }
}

http://www.saturn.dti.ne.jp/~npaka/flash/as30/index.html

スクリプト言語派の自分としては、出来ればJavaのような、コードを書く量が多くて何かと面倒くさい言語は使いたくないのだけど、Airとかでまともに遊ぼうとするとActionScript3.0以外の選択肢はなさそうで困った。
でもやっぱり面倒くさいのは嫌だな、と言うことで、ちゃんと調べてみた所

  • 型宣言は必須でない
  • 静的な型チェックをしないようにコンパイラのオプションで指定できる

という事で、思ったより簡単に使えそうというか、普通にスクリプト言語的な使い方が出来そうな感じだと分かった。


http://weblogs.macromedia.com/akamijo/archives/2007/05/as3_1.htmlを見る限りでは、型宣言しないと多少コードの処理速度が落ちるらしいけど、スクリプト言語の実行速度なんてあまり気にしなくても良いと思う。*1


ソースのコンパイルFlex SDKを使う場合、--strict=falseオプションを指定すると静的なチェックを行わなくなる。

amxmlc --strict=false HelloWorld.as


例えば通常、下記のコードはコンパイルエラーになるけど、--strict=falseを指定してやればコンパイルに成功するようになる。

foo = ["one", "two", "three"]
for each (i in foo)
  trace(i)

*1:ベンチ結果を見るとfor文のローカル変数に使うiだけは宣言しておこうかとも思う