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();