ActionScript 3.0で始めるオブジェクト指向スクリプティング

第18回 カスタムクラスを定義する

この記事を読むのに必要な時間:およそ 3 分

今回は,いよいよクラスを定義する。ユーザーが定義するクラスは「カスタムクラス」と呼ぶ。カスタムクラスは,ActionScript定義済みのクラスと同じように使うことができる。Flashムービー(FLA)ファイルとは別のActionScript(AS)ファイルを作成して定義するので,他のプロジェクトに流用したり,ライブラリを構築するのに便利だ。

空のクラスをつくる

始めは,プロパティもメソッドもない空っぽのクラスを定義してみよう。それでも,インスタンスは作成できる。DateやArrayクラスのインスタンスは,new演算子を使ってつぎのように生成した。カスタムクラスのインスタンスも,また同じようにつくる。

var 変数:クラス = new クラス名([引数])

カスタムクラスを定義するには,まずActionScript(AS)ファイルを開かねばならない。[ファイル]メニューから[新規]で[新規ドキュメント]ダイアログボックスを開き,[ActionScript(AS)ファイル]を選ぶ図1)。

図1 [新規ドキュメント]ダイアログボックスから[ActionScript(AS)ファイル]を選択

図1 [新規ドキュメント]ダイアログボックスから[ActionScript(AS)ファイル]を選択

そのクラス名を用いて,新規ActionScript(AS)ファイルがスクリプトウィンドウで開く。クラス定義はこのスクリプトウィンドウに記述して図2),Flashムービー(FLA)ファイルとは別に保存する。

図2 クラス定義はスクリプトウィンドウに記述

図2 クラス定義はスクリプトウィンドウに記述

クラス定義には作法がある。まず,クラス名を識別子で決める。すると,プロパティやメソッドのない最小限のクラスは,つぎのように定義する。

最小限のクラス定義

最小限のクラス定義

クラスはclass定義キーワードに続けて,クラス名を指定して定義する。そして,続く中括弧{}内のクラス本体には,プロパティやメソッドが記述される。さらに,そのクラス全体をpackageという定義キーワードと中括弧{}で括るのだ。packageキーワードの後には,オプションとしてパッケージ名を指定することもできる(省略可能)。

クラス本体には,プロパティをvar宣言し,メソッドはfunctionとして定義する。その基本は,フレームアクションに変数を宣言したり,関数を定義するのと変わらない。

ところで,前掲「最小限のクラス定義」には,クラスと同名のfunction,つまりメソッドが定義されている。これは,「new クラス名()」でインスタンスを生成するときに呼出される特別なメソッドだ。「コンストラクタ」または「コンストラクタメソッド」という。

クラスを定義すると,クラス名は都合3箇所で使われる。第1に,文字どおりクラス名だ。第2に,コンストラクタメソッド名に,そのクラス名が使われる。そして第3に,クラスを定義したActionScript(AS)ファイルは,「クラス名.as」という名前で保存しなければならない。

クラス名が指定される3箇所
  1. クラス名
  2. コンストラクタメソッド名
  3. ActionScript(AS)ファイル名

それでは,上述の作法に則って,プロパティも(コンストラクタは別にして)メソッドももたない空っぽのクラスMyClassを,以下のように定義してみよう。なお,コンストラクタメソッドはクラスのインスタンスを返すが,戻り値(returnステートメント)とそのデータ型は指定しないことに注意してほしい※1)。

package {
  class MyClass {
    function MyClass() {
    }
  }
}

保存するActionScriptファイル名は,「MyClass.as」だ。保存先は,パッケージ(package)の指定などによっても変わる。今回は指定なしなので,このクラスを使うFlashムービー(FLA)ファイルと同じ場所に保存する。

※1
クラスには,コンストラクタメソッドが必須だ。しかし,「クラスでコンストラクタメソッドを定義しなかった場合,コンパイラが自動的に空のコンストラクタを作成」する([ヘルプ]の[ActionScript 3.0のプログラミング] > [ActionScriptのオブジェクト指向プログラミング] > [クラス] > [メソッド]の[コンストラクタメソッド]の項)。

著者プロフィール

野中文雄(のなかふみお)

ソフトウェアトレーナー,テクニカルライター,オーサリングエンジニア。上智大学法学部卒,慶応義塾大学大学院経営管理研究科修士課程修了(MBA)。独立系パソコン販売会社で,総務・人事,企画,外資系企業担当営業などに携わる。その後,マルチメディアコンテンツ制作会社に転職。ソフトウェアトレーニング,コンテンツ制作などの業務を担当する。2001年11月に独立。Web制作者に向けた情報発信プロジェクトF-siteにも参加する。株式会社ロクナナ取締役(非常勤)。

URLhttp://www.FumioNonaka.com/

著書

コメント

コメントの記入