Flash CS3 ドキュメンテーション |
|||
| ActionScript 2.0 の学習 > クラス > 例 : カスタムクラスの記述 > メソッドとプロパティの追加 | |||
ClassA クラスと ClassB クラスのプロパティを作成するには、var キーワードを使用して変数を定義します。
|
メモ |
|
次に示す 3 つの実習は、例 : カスタムクラスの記述の一部です。この例を実施する必要がない場合は、www.helpexamples.com/flash/learnas/classes/ からクラスファイルをダウンロードしてもかまいません。 |
class com.adobe.utils.ClassA {
static var _className:String;
function ClassA() {
trace("ClassA constructor");
}
}
上記のコードブロックに、現在のクラスの名前を格納するための新規の静的変数 _className を 1 つ追加します。
|
ヒント |
|
慣例により、クラスのプロパティはクラス本体の先頭で定義します。必須ではありませんが、先頭で定義することにより、コードがわかりやすくなります。 |
変数の宣言では、後にコロン (:) を付けるシンタックスを使用します (var username:String や var age:Number など)。これは、厳密な型指定の例です。変数を var variableName:variableType という形式で宣言しておくと、その変数に代入される値が指定のデータ型に一致するかどうかが ActionScript 2.0 コンパイラによってチェックされます。このクラスを読み込む FLA ファイルで正しいデータ型が使用されていない場合は、コンパイルエラーが発生します。厳密な型指定の詳細については、データ型の割り当てと厳密な型指定についてを参照してください。
クラスのメンバーには、プロパティ (変数宣言) とメソッド (関数定義) の 2 種類があります。すべてのプロパティとメソッドは、クラス本体の中 (つまり中カッコ [{}] 内) で宣言および定義する必要があります。そうしないと、コンパイルエラーが発生します。メンバーの詳細については、パブリック、プライベート、および静的なメソッドとプロパティ (メンバー) についてを参照してください。
class com.adobe.utils.ClassA {
static var _className:String;
function ClassA() {
trace("ClassA constructor");
}
function doSomething():Void {
trace("ClassA - doSomething()");
}
}
上記の太字のコードブロックでは、ストリングを [出力] パネルに表示するための新規メソッドをクラスに作成します。
[出力] パネルにエラーが出力される場合は、自分のスクリプトの ActionScript と、前述の手順で記述した完全なコードとを比較します。コードエラーを解決できない場合は、次に進む前に、完成版のコードをスクリプトウィンドウにコピーしてください。
[出力] パネルにエラーが出力される場合は、次に進む前に、完成版のコードをスクリプトウィンドウにコピーしてください。
class com.adobe.utils.ClassB {
static var _className:String;
function ClassB() {
trace("ClassB constructor");
}
function doSomething():Void {
trace("ClassB - doSomething()");
}
}
プロパティは、インラインで初期化できます。つまり、次のようにデフォルト値を指定して宣言できます。
class Person {
var age:Number = 50;
var username:String = "John Doe";
}
プロパティをインラインで初期化するときには、代入式の右辺に必ずコンパイル時定数を指定します。つまり、右辺の式では、設定や定義が実行時に行われる値を参照することはできません。コンパイル時定数には、ストリングリテラル、数値、ブール値、null、undefined に加えて、Array、Boolean、Number、Object、String というトップレベルクラスのコンストラクタ関数があります。
class com.adobe.utils.ClassA {
static var _className:String = "ClassA";
function ClassA() {
trace("ClassA constructor");
}
function doSomething():Void {
trace("ClassA - doSomething()");
}
}
既存のクラスファイルと上記のコードブロックとの違いは、静的変数 _className に値 "ClassA" が定義されている点だけです。
この規則はインスタンス変数 (クラスの各インスタンスにコピーされる変数) にのみ適用されるもので、クラス変数 (クラスに属する変数) には適用されません。
|
メモ |
|
配列をインラインで初期化した場合、クラスのすべてのインスタンスに対して配列が 1 つだけ作成されます。 |
これ以降のクラスファイル記述方法については、クラスでのメンバーアクセスの制御を参照してください。
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000792.html