|
Flash CS4 のリソース |
データ型データ型は値のセットを定義します。例えば、Boolean データ型は、厳密に 2 つの値 true と false のセットです。ActionScript 3.0 では、Boolean データ型に加えて、String、Number、Array などのよく使用されるデータ型が定義されています。 独自のデータ型を定義するには、クラスまたはインターフェイスを使用して値のカスタムセットを定義します。 ActionScript 3.0 のすべての値は、プリミティブ値または複合値にかかわらず、オブジェクトです。 プリミティブ値とは、Boolean、int、Number、String、および uint のいずれかのデータ型に属する値を言います。ActionScript では、プリミティブ値はメモリとスピードを最適化できるように特別に格納されるので、通常プリミティブ値は複合値より速く操作できます。 注意: 技術的に説明すると、ActionScript ではプリミティブ値はイミュータブルオブジェクトとして内部的に格納されます。 イミュータブルオブジェクトとして格納されるということは、参照渡しが値渡しと同じように効果的であることを示しています。 参照は通常、値自体よりかなり小さいので、これによりメモリ使用量が削減し、実行速度が向上します。
複合値とはプリミティブ値ではない値です。複合値のセットを定義するデータ型には、Array、Date、Error、Function、RegExp、XML、XMLList などがあります。 多くのプログラム言語では、プリミティブ値とそのラッパーオブジェクトは区別されています。 例えば、Java には int プリミティブとそれをラップする java.lang.Integer クラスがあります。 Java のプリミティブはオブジェクトではありませんが、そのラッパーはオブジェクトです。このため、処理によってはプリミティブを使用する方が便利な場合とラッパーオブジェクトを使用する方が適切な場合とがあります。 ActionScript 3.0 では、プリミティブ値とそのラッパーオブジェクトは実際には区別できません。 プリミティブ値を含むすべての値はオブジェクトです。 Flash Player および Adobe AIR では、これらのプリミティブ型は、オブジェクトのように動作しながら、オブジェクトを作成するための通常のオーバーヘッドが不要な特殊なケースとして扱われます。これは、次の 2 つのコード行が同等であることを意味します。 var someInt:int = 3; var someInt:int = new int(3); 上記に示したすべてのプリミティブデータ型と複合データ型は、ActionScript 3.0 コアクラスで定義されています。 コアクラスを使用すると、new 演算子を使用する代わりにリテラル値を使用してオブジェクトを作成できます。例えば、次のようにリテラル値または Array クラスのコンストラクタを使用して、配列を作成することができます。 var someArray:Array = [1, 2, 3]; // literal value var someArray:Array = new Array(1,2,3); // Array constructor |