図1●ActionScriptのコードを記述するスクリプトウィンドウ
図1●ActionScriptのコードを記述するスクリプトウィンドウ
[画像のクリックで拡大表示]
図2●クラス・ファイルは拡張子「.as」のファイルとして保存する
図2●クラス・ファイルは拡張子「.as」のファイルとして保存する
[画像のクリックで拡大表示]
図3●一つのプロパティと一つのメソッドを持つクラス
図3●一つのプロパティと一つのメソッドを持つクラス
[画像のクリックで拡大表示]
リスト1●クラスを定義するコード
リスト1●クラスを定義するコード
[画像のクリックで拡大表示]

 Macromedia Flash MX 2004を使ったプログラミングを紹介するこの記事,今回はFlashが備えるスクリプト言語ActionScriptを使ったオブジェクト指向プログラミング(OOP)について解説します。

 ActionScriptでは,JavaやC#といった多くのOOP言語と同様,クラスを自前で作成して利用できます。すでにOOPに親しんでいる方であれば,ノウハウをそのままActionScriptを使ったアプリケーション開発に生かすことが可能です。

 とはいえ,ActionScriptのクラスの構文は,ほかのOOP言語と少し異なる点もあります。今回は,具体的なクラスの作成方法と特徴について確認してみましょう。併せて,OOPの特徴についてサンプルを使って説明しますので,OOPに苦手意識を持っている人は,この機会に勉強しましょう。

Flashドキュメント・ファイルと
クラス・ファイルを作成しておく

 準備として,今回作成するクラスを呼び出して利用するFlashドキュメント(Flashで作成するアプリケーション)を作成します。Flashのメニューから,[ファイル]-[新規]とたどって表示される[新規ドキュメント]ダイアログボックスから,[一般]タブ内の[Flashドキュメント]を選択します。Flashドキュメント開発用のウィンドウが開いたことを確認したら,そのままメニューから[ファイル]-[名前を付けて保存]とたどり,「classTest.fla」という名前を付けて,適当なフォルダを新規に作成して保存しておきます。

 次に,ActionScriptで定義したクラスを保存するファイルを作成します。メニューから,[ファイル]-[新規]とたどって表示される[新規ドキュメント]ダイアログボックス内で[ActionScript(AS)ファイル]を選択します。すると,ActionScriptの記述に特化したウィンドウである「スクリプトウィンドウ」が開きます(図1[拡大表示])*1

 この状態で,先ほどFlashドキュメント(classTest.fla)を保存したのと同じフォルダに,「Animal.as」という名前で保存します(図2[拡大表示])。クラスを定義するActionScriptのファイル(以降,クラス・ファイルと呼びます)は,拡張子「.as」のテキスト形式のファイルになります(カコミ記事「Flashドキュメントとクラス・ファイルの保存位置に注意」を参照)。

 ActionScriptは,Javaと同じように,一つのクラスを一つのファイルで管理します。この際に,拡張子を除くファイル名をクラス名に一致させる必要があります。ActionScriptではアルファベットの大文字と小文字は区別されますので,ファイル名を決める際にも大文字と小文字の使い分けに注意しましょう*2

簡単なクラスを定義してみよう

 ファイルの準備ができたところで,ActionScriptでクラスを記述してみましょう。クラスの構成要素には,変数と手続きがあります。変数のことをプロパティ,手続きのことをメソッドと呼びます*3

 手始めに図3[拡大表示]のように,nameプロパティとgetNameメソッドを持つAnimalクラスを作成しましょう。ActionScriptでは,クラスの定義はclassキーワードとクラス名に続く中カッコ{ }の中に記述します。

class クラス名 {
 // クラスの内容
}

 では,クラスの内容を定義していきましょう。まず,プロパティです。プロパティを定義するには,変数を定義する時と同じようにvarキーワードを使って定義します。

var プロパティ名:データ型;

メソッドを定義するには,functionキーワードを使って関数の形で記述します。戻り値のあるメソッドの場合には,returnステートメントを使って戻り値を返します。

function メソッド名(引数) {
 // 処理
 // return 戻り値;
}

 最後に,クラスからインスタンス(オブジェクト)を生成する際に実行される特別なメソッドであるコンストラクタを定義します。コンストラクタは,クラス名と同名のメソッドとして定義します。

function コンストラクタ関数名(引数) {
 // インスタンスの初期化処理
}

コンストラクタ関数を明示的に定義していない場合は,コンパイラが空っぽのコンストラクタを自動的に作成します。

 リスト1[拡大表示]は,以上のルールに従って定義したAnimalクラスです。ここではプロパティ,メソッドの戻り値,引数のすべてでデータ型を指定していますが,データ型の指定は省略することもできます。ただ,データ型を指定しておけば,コンパイル時にエラーを発見しやすくなりますので,型を指定するように習慣付けておきたいですね。

 Animal.asファイルを開いてスクリプトウィンドウにリスト1を記述したら,ウィンドウ左上の[シンタックスチェック]ボタン(チェックマークのアイコン)を押して,コードに文法的な誤りがないかをチェックします。エラーがあれば修正を行い,無ければ上書き保存をしておきましょう。これで基本的なクラスの定義は完了です。


つづく…

吉岡 梅(よしおか うめ)
山梨県在住のソフトウエア開発者。

◆下記のURLから,サンプル・プログラムを無償ダウンロードできます
http://software.nikkeibp.co.jp/software/download/down04c.html#200408