オブジェクトとクラス

ActionScript 3.0 では、各オブジェクトはクラスにより定義されます。 クラスは、オブジェクト型のテンプレートまたは設計図と考えることができます。 クラス定義には、データ値を保持する変数と定数、およびクラスにバインドされているビヘイビアーをカプセル化する関数であるメソッドを含めることができます。 プロパティに格納される値は、プリミティブ値または他のオブジェクトです。プリミティブ値とは、数値、ストリング、またはブール値です。

ActionScript には、コア言語の一部であるビルトインクラスが多数あります。 Number、Boolean、String などのビルトインクラスは、ActionScript で使用可能なプリミティブ値を表します。 Array、Math、XML などその他のクラスでは、より複雑なオブジェクトを定義します。

ビルトインおよびユーザー定義のすべてのクラスは、Object クラスから派生します。 旧バージョンの ActionScript に慣れているプログラマーは、他のクラスはすべて Object クラスから派生しますが、Object データ型はデフォルトのデータ型ではなくなったことに注意する必要があります。 ActionScript 2.0 では、型注釈が存在しないため、変数が Object 型であることを意味しているので、次の 2 行のコードが同等でした。

var someObj:Object; 
var someObj;

ただし、ActionScript 3.0 は、型指定されていない変数の概念を導入しています。この変数は、次の 2 つの方法で指定することができます。

var someObj:*; 
var someObj;

型指定されていない変数は、Object 型の変数と同じではありません。 主な違いは、型指定されていない変数は特別な値 undefined を保持できますが、Object 型の変数はその値を保持できないことです。

class キーワードを使用して独自のクラスを定義することができます。クラスプロパティは 3 とおりの方法で宣言できます。定数を定義するには const キーワード、変数を定義するには var キーワード、getter および setter プロパティを定義するにはメソッド宣言で get および set 属性を使用します。メソッドを宣言するには、 function キーワードを使用します。

クラスのインスタンスを作成するには、 new 演算子を使用します。次の例では、 myBirthday と呼ばれる Date クラスのインスタンスを作成します。

var myBirthday:Date = new Date();