初心者のためのFlash ActionScript講座
Flash ActionScript Helper
Home Menu

最終更新日: 2003年8月13日

オブジェクト(詳細)

クラスとインスタンス

定義済みオブジェクトは、プロパティの集合体として、あらかじめシステムによって定義された雛形です。ActionScript ではオブジェクトと呼んでいますが、オブジェクト指向の用語では、この雛形をクラスといいます。
クラスは雛形なので、ムービーで使用するためには、実体を生成しなければなりません。この実体のことをインスタンスといいます。

インスタンスという言葉はすでにご存知ですね。[ ライブラリ ] ウィンドウに格納されたグラフィック、ボタン、ムービークリップの共通部品がシンボル、シンボルをステージ上に配置したものがインスタンスです。このシンボルとインスタンスも、オブジェクトのクラスとインスタンスの関係と同じように考えることができます。シンボルは雛形なのでクラス、実体化したものがインスタンスです。

シンボルとインスタンス

インスタンス生成からみた定義済みオブジェクトの分類

インスタンスの生成方法からみると、定義済みオブジェクトは、以下のように分類できます。

●自動生成されるオブジェクト
システムが自動的に生成するオブジェクトです。ユーザーが生成・削除する必要はありません。
Argumentsを除くオブジェクトは、トップレベルオブジェクトと呼ばれ、ムービーの階層構造とは独立した存在です。どのタイムラインからも、ターゲットパスの指定なしでアクセスできます。また、他のオブジェクトとは異なり、各オブジェクトには、常にひとつのインスタンスしか存在しませんので、オブジェクト名をインスタンス名として使用します。

●オーサリングで生成可能なオブジェクト
Flashで描画要素を持つオブジェクトは、ムービークリップ、ボタン、テキストフィールドの3つだけです。これらは オーサリング時に生成可能なオブジェクトです。インスタンスは、ムービークリップシンボル、ボタンシンボル、テキストフィールドが配置されたキーフレームで生成され、タイムライン上から消えたキーフレームで削除されます。
なおムービークリップとテキストフィールドは、スクリプトによる生成・削除(削除できるはスクリプトによって生成されたインスタンスだけです)も可能です。ただし、生成・削除には、独自のメソッドを使用します。
他のオブジェクトからアクセスするときは、ターゲットパスの指定が必要ですので、必ずインスタンス名を付けるようにしましょう。

●スクリプトによって生成するオブジェクト
ユーザーがスクリプトによって生成・削除するオブジェクトです。
Functionを除くオブジェクトは、次の項で解説するnew演算子、delete演算子で、インスタンスの生成・削除を行います。
シンボルとインスタンスの関係同様、クラスからは複数のインスタンスを生成することができます。ターゲットパスの指定は必須です。

自動生成されるオブジェクト

オーサリングで生成可能なオブジェクト

スクリプトによって生成するオブジェクト

Accessibility
Arguments(注1)
CustomActions
Key
Math
Mouse
Selection
Stage
System
System.capabilities

MovieClip(注2)
Button
TextField

Array
Boolean
Color
Date
LoadVars
LocalConnection
Number
Object
Sound
String
SharedObject
TextFormat
XML
XMLSocket

注1:Argumentsは、関数実行中に自動的に生成されるオブジェクトです。実行が終わると削除されます。ターゲットパスの指定は必須。
注2:ムービークリップは、Flashではその重要性によって別のデータ型に分類されていますが、実際にはオブジェクトの一種です。

インスタンスの生成

前述のとおり、多くのオブジェクトはスクリプトでインスタンスを生成します。
その際に使用されるのが、new 演算子です。書式は以下のとおりです。

インスタンスの生成

まず new 演算子、その後にスペース、次にオブジェクト名と関数呼び出し演算子のカッコ() を記述します。引数が必要な場合はカッコ内に指定します。引数はオブジェクトごとに異なります。詳しくは『ActionScript辞書』を参照してください。

オブジェクト名の後ろに関数呼び出し演算子() が付いていますね。インスタンスの生成は、関数を呼び出して実行されています。この関数は、オブジェクト(クラス)名と同一の名前を持つコンストラクタ関数と呼ばれるものです。コンストラクタ関数は、インスタンスの生成とともに、引数の値を元にプロパティに値を設定します。これをオブジェクトの初期化といいます。

new 演算子とコンストラクタ関数を使用すると、生成されたインスタンスの値が返されるので変数に代入します。以後、この変数名をオブジェクトのインスタンス名としてスクリプトで利用します。上の指定例では、oColorがインスタンスが代入された変数です。


インスタンスの削除( delete 演算子)

オブジェクトのインスタンスを削除するには、delete 演算子を使用します。書式は以下のとおりです。

インスタンスの削除

まず delete演算子、その後にスペース、次にインスタンス名を指定します。他から参照されていない限り、このスクリプトでインスタンスを削除することができます。

なお、Flashにははじめからガーベジ・コレクションという機能が備わっています。ムービー実行中に不要となった(参照されなくなった)オブジェクトや変数を自動的に削除し、メモリを開放する機能です。通常は、不要となったオブジェクトや変数の後始末は、このガーベジ・コレクションに任せましょう。スクリプトで削除する必要はありません。



・関連項目

オブジェクト(概要)
定義済みオブジェクト

(C)2000-2004 Ginga Baba. All rights reserved. お問い合わせ先:ginga@nifty.com
ページTOPへ
Home Menu