ActionScript3クラス
package
ステートメント。_
さて、最初にあなたが言ったように、クラスはpackage
1でラップされなければなりません。これにより、クラスを定義する必要がある最初のブロックが得られます。
package
{
// Your class here.
}
このpackage
ステートメントは、.fla
2を基準にしたクラスの場所を反映しています。たとえば、プロジェクト.flaと同じディレクトリ内にフォルダ「classes」がある場合、そのフォルダ内のクラスには、次のことを反映するパッケージステートメントが必要になります。
package classes
{
// Your class here.
}
クラスの定義。
パッケージステートメント内に、 1つのクラスを挿入できます。これをパッケージ自体と混同しないでください。パッケージ自体には多くのクラスが含まれている可能性があります。各クラスには、同じパッケージステートメントを持つ独自のファイルが必要です。
クラス定義は、最大5つの部分で構成されます。
- 名前空間。クラスは
internal
またはにすることができますpublic
。internal
クラスは同じパッケージ内のクラスでのみ表示できますが、クラスpublic
はプロジェクト内のどこからでも表示できます。
- クラス名。
- 基本クラス(オプション)。基本クラスが定義されている場合、新しいクラスはそのクラスの拡張として機能し、基本クラスのすべての品質を継承します。
- 実装するインターフェース(オプション)。インターフェイスは高度なトピックであるため、AS3とOOPが進化するまで、今のところこれらを忘れることをお勧めします。
パッケージ内に「Person」というクラスを作成したい場合は、次のようになりますclasses
。
package classes
{
public class Person
{
// Class qualities here.
}
}
プロパティ。
クラスにはプロパティを含めることができます。プロパティは、var
キーワードを使用して定義されます。それらは、いくつかの名前空間(独自の名前空間を含む)の1つに属している可能性があり、クラスに属する値を保持するために使用されます。プロパティは、クラスの最上位に集まって最も一般的に見られます。
私たちのPerson
クラスはプロパティheight
を楽しむことができますweight
:
package classes
{
public class Person
{
// Properties.
public var height:Number = 1.70;
public var weight:Number = 67.5;
}
}
これらのプロパティには、作成したインスタンスを介してアクセスできPerson
ます。各インスタンスには、これらのプロパティの独自のセットがあります。
クラスコンストラクター(これがあなたが求めているものだと思います)。
コンストラクターは、クラスのインスタンスが作成されるとすぐに実行される必要があるロジックを保持するために使用されます。クラスコンストラクターは、クラス自体と同じ名前です。それはそうであるに違いありませんpublic
、そしてそれは何も返しません。コンストラクターは引数を受け入れることができます。引数は通常、そのクラスの依存関係または必要な値への参照を渡すために使用されます。
package classes
{
public class Person
{
// Properties.
public var height:Number = 1.70;
public var weight:Number = 67.5;
// Constructor.
public function Person(height:Number, weight:Number)
{
this.height = height;
this.weight = weight;
}
}
}
メソッド。
メソッドは、そのメソッドを呼び出すときに実行できるロジックを保持するために使用されます。多くの場合、メソッドは値を返し、引数を受け入れることができます。メソッドは、プロパティが属することができると予想される任意の名前空間に属することができます。
作成する各インスタンスのBMIを簡単に判別できるようにしたい場合がPerson
あるため、そのためのメソッドを作成する必要があります。
package classes
{
public class Person
{
// Properties.
public var height:Number = 170;
public var weight:Number = 65.5;
// Constructor.
public function Person(height:Number, weight:Number)
{
this.height = height;
this.weight = weight;
}
// Determine my BMI and return the result.
public function getBMI():Number
{
return weight / (height * height);
}
}
}
インスタンス。
新しいクラスを定義したので、new
キーワードを使用してこのクラスのインスタンスを作成できます。これは、クラスにアクセスできる場所ならどこからでも実行できます。Person
この場合、クラスを作成したため、プロジェクト内のどこからでも実行できますpublic
。
クラスはですがpublic
、それが属するパッケージの外部からアクセスするには、import
ステートメントを使用する必要があります。このステートメントは、別のパッケージに属するすべてのクラス内で使用する必要があります。このimport
ステートメントは、に使用されているのpackage
と同じ名前の後に続き、最後に含めるクラスの名前が含まれています。
import classes.Person;
インポートPerson
したら、そのインスタンスを作成して、異なる値height
を持つ変数に割り当てることができます。weight
var marty:Person = new Person(71, 1.76);
var bruce:Person = new Person(96.4, 1.72);
getBMI()
次に、次の方法を使用して、各人のBMIを取得できます。
trace(marty.getBMI()); // 22.9
trace(bruce.getBMI()); // 32.6
1同じ.asファイルで参照できるパッケージの外部にクラスを配置できます。
2ソースパスをさらに追加でき、パッケージはそれに関連することができます。