Flash CS3 ドキュメンテーション |
|||
| ActionScript 2.0 の学習 > データおよびデータ型 > データ型について > データ型の割り当てと厳密な型指定について > データ型の割り当て | |||
変数を定義する際は、必ずデータ型を割り当てます。var キーワードを使用した変数宣言、関数の引数の作成、関数の戻り値の設定、または for ループや for..in ループで使用する変数の定義のいずれを行う場合も、データ型の割り当てが必要です。データ型を割り当てるには、"ポストコロンシンタックス" を使用します。つまり、変数名の後にコロン (:) を付け、その後にデータ型を指定します。
var my_mc:MovieClip;
データ型にはさまざまな種類があります。数値、ストリング、ブールなどのネイティブのデータ型の他に、BitmapData や FileReference などの Flash Player 8 に実装されているビルトインクラス、さらには開発者が作成したカスタムクラスもあります。最も一般的に使用されるデータ型は、数値、ストリング、ブール、配列、オブジェクトなどのビルトインデータ型です。次のコード例では、これらのデータ型を示します。
アイテムに特定のデータ型を割り当てるには、次の例のように、var キーワードと、変数名の後にコロン (:) を付けるポストコロンシンタックスを使って型を指定します。
// 変数またはオブジェクトの厳密な型指定
var myNum:Number = 7;
var birthday:Date = new Date();
// パラメータの厳密な型指定
function welcome(firstName:String, age:Number) {
}
// パラメータと戻り値の厳密な型指定
function square(myNum:Number):Number {
var squared:Number = myNum * myNum;
return squared;
}
オブジェクトのデータ型は、ビルトインクラス (Button や Date など) や、自分で作成したクラスおよびインターフェイスを基にして宣言することもできます。たとえば、"Student.as" というファイルの中で Student という自作のクラスを定義している場合、次のように記述すれば、作成するオブジェクトの型を Student と指定できます。
var myStudent:Student = new Student();
たとえば、次のコードを入力したとします。
// "Student.as" クラスファイル内で次のように記述
class Student {
public var status:Boolean; // Student オブジェクトのプロパティ
}
// FLA ファイル内で次のように記述
var studentMaryLago:Student = new Student();
studentMaryLago.status = "enrolled"; /* 代入ステートメントでタイプが一致しません。String が見つかりましたが、Boolean が必要です。 */
Flash でこのスクリプトをコンパイルすると、ブール値以外の値が代入されているため、"タイプが一致しません" というエラーが発生します。
戻り値のない関数を記述する場合は、その関数の戻り値の型として Void を指定できます。また、関数へのショートカットを作成する場合は、新しい変数に Function というデータ型を割り当てることができます。オブジェクトが Function 型または Void 型であることを指定する方法については、次の例を参照してください。
function sayHello(name_str:String):Void {
trace("Hello, " + name_str);
}
sayHello("world"); // Hello, world
var greeting:Function = sayHello;
greeting("Augustus"); // Hello, Augustus
厳密な型指定のもう 1 つのメリットは、ビルトインオブジェクトを厳密に型指定した場合、自動的にコードヒントが表示されることです。詳細については、データ型の割り当てと厳密な型指定についてを参照してください。
ActionScript 1.0 を使用してパブリッシュされたファイルは、コンパイル時に厳密な型指定を無視します。つまり、厳密に型指定した変数に誤った型の値を代入しても、コンパイルエラーは発生しません。
var myNum:String = "abc"; myNum = 12; /* ActionScript 1.0 ではエラーが発生しないが、ActionScript 2.0 では "タイプが一致しません" エラーが発生 */
これは、ActionScript 1.0 のパブリッシュ時に Flash は var myNum:String = "abc" のようなステートメントを厳密な型指定ではなく、スラッシュシンタックスと解釈するためです。ActionScript 2.0 は、スラッシュシンタックスをサポートしていません。この結果、不適切な型の変数にオブジェクトが代入されることになって、不正なメソッド呼び出しや未定義のプロパティ参照がコンパイラでエラーとならずに通ってしまう可能性があります。
ActionScript 2.0 を使用してパブリッシュしたファイルでは、必要に応じてデータの型指定を使用できます。このため、コードに厳密な型指定を実装する場合は、パブリッシュ設定を ActionScript 2.0 に設定する必要があります。パブリッシュ設定を指定し、パブリッシュするファイルの ActionScript のバージョンを定義するには、メインメニューからパブリッシュ設定を変更するか ([ファイル]-[パブリッシュ設定])、インスタンスを何も選択していない状態でプロパティインスペクタの [設定] ボタンをクリックします。ActionScript の特定のバージョンまたは Flash Player を使用するには、[パブリッシュ設定] ダイアログボックスで [Flash] タブを選択し、[ActionScript のバージョン] ポップアップメニューでアイテムを選択します。
型チェックの詳細については、型チェックについてを参照してください。
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000651.html