« クラスパス | メイン | importの利用 »

パッケージの利用

クラスパスで指定してあるディレクトリよりも下ならば、クラス定義ファイルをフォルダにまとめて入れておくことができます。このときのフォルダのパス(サブディレクトリ)をパッケージと呼びます。パッケージを使う場合には、クラス定義およびインスタンスを生成する際にクラスパスからのディレクトリ階層、すなわちパッケージ名を指定します。
次の例では、現在のFlashムービーファイルpackageSample.flaの階層にpetsフォルダがあり、その中にHana.asとTaro.asの2つのクラス定義ファイルが入っています。

sample→ex-04/packageフォルダ

packageSample.fla
petsフォルダ
 ├ Hana.as
 └ Taro.as

この場合のにHanaクラスのクラス定義ファイルは次のようになります。クラス名にパッケージ名を付けた完全修飾名でクラス名を指定しなければならない点に注意してください。


クラス定義ファイル:pets/Hana.as
//パッケージ名に続けてクラス名を書く
class pets.Hana {
//コンストラクタ
function Hana() {
}
//関数
function nakigoe():String{
return "ニャー";
}
}


同様にTaroクラスのクラス定義ファイルは次のようになります。

クラス定義ファイル:pets/Taro.as
//パッケージ名に続けてクラス名を書く
class pets.Taro {
//コンストラクタ
function Taro() {
}
//関数
function nakigoe():String {
return "ワン";
}
}

この2つのクラス定義ファイルからインスタンスを作り、それぞれのクラスのnakigoe()関数をテストするスクリプトは次のようになります。インスタンスをnew演算子で作る際にもパッケージ名に続いてクラス名を指定します。インスタンスを入れる変数のデータ型にもパッケージ名とクラス名を指定しなければならない点に注意してください。

フレームアクション:packageSample.fla
//Hanaクラスのインスタンスを作る
var hanaObj:pets.Hana = new pets.Hana();
//Taroクラスのインスタンスを作る
var taroObj:pets.Taro = new pets.Taro();
//関数を実行する
var naki_hana = hanaObj.nakigoe();
var naki_taro = taroObj.nakigoe();
trace("hanaは、" + naki_hana); // 出力→ hanaは、ニャー
trace("taroは、" + naki_taro); // 出力→ taroは、ワン

投稿者 oshige : 2005年2月21日 11:17