AS2とAS3の違い(その2)

Syntacs

const
  • const キーワードが追加され、定数が定義できるようになった。
  • 定数は一度宣言と同時に代入するか、宣言後、コンストラクタで代入できる
  • 以後変更しようとするとランタイムエラーとなる
    class A
    {
    public const MINIMUM:int = 0;
    public const MAXIMUM:int;
    public function A()
    {
    MAXIMUM = 10;
    }
    }
    var a:A = new A();
    a["MAXIMUM"] = 100; // run-time error
    

Looping Statement

for each..in
  • ループステートメントに新しくfor eacn..inステートメントが加わり、コレクションのアイテムを走査できるようになった。
  • 例えばObjectのプロパティの値を走査する場合
    var myObj:Object = {x:20, y:30};
    for each (var num in myObj)
    {
    trace(num);
    }
    // output:
    // 20
    // 30
    
  • XMLを走査する場合
    var myXML:XML = <users>
    <fname>Jane</fname>
    <fname>Susan</fname>
    <fname>John</fname>
    </users>
    for each (var item in myXML.fname)
    {
    trace(item);
    }
    /* output
    Jane
    Susan
    John
    */
    

Function

匿名関数について
  • コンパイラのモードにstrictとstandardが選べるようになった?

  • strictモードでは、匿名関数を使用することはできない。
    class Example
    {
    var methodExpression = function() {}
    function methodStatement() {}
    }
    var myEx:Example = new Example();
    myEx.methodExpression(); // error in strict mode; okay in standard mode
    myEx.methodStatement(); // okay in strict and standard modes
    
  • ただし、strictモードでも配列アクセスを使えば匿名関数にアクセスできる
  • myEx["methodExpression"]();
    
  • もしくは、classをdynamicにすることでも匿名関数を使用できるようになる。
カテゴリー: AS3fromAS2 パーマリンク

AS2とAS3の違い(その2) への1件のフィードバック

  1. 今更ActionScript3.0に驚く

    学校でActionScriptを教える以上、最新のAS3についてもそろそろ知っておく必要があると思い本屋で書籍を物色していたのですが、どうやらこれまでのA…

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です