サイトトップ

Director Flash 書籍 業務内容 プロフィール

Macromedia Flash非公式テクニカルノート

8. クラスのインポート

ID: FN0311008 Product: Flash

Platform: All
Version: Flash MX 2004

他のスクリプトのクラスを参照するには、クラス名の前にクラスのパッケージパスを指定する必要があります。クラス名とパッケージパスを組合わせたものが、「完全な記述によるクラス名」(fully qualified class name)になります。クラスがクラスパスフォルダの最上層(top-level)にあり、クラスパスフォルダのサブフォルダ内でなければ、完全な記述によるクラス名はクラス名のみになります。

パッケージパスを指定するには、ドットシンタックスを使ってパッケージフォルダ名を区切ります。パッケージパスは階層構造で、各ドットが内包(ネスト: nest)されたフォルダを意味します。たとえば、Dataという名前のクラスを作成して、クラスパス内のcom/network/packageに配置したとします。このクラスのインスタンスを作成するには、完全な記述によるクラス名を以下のように指定します。

var dataInstance = new com.network.Data();

完全な記述によるクラス名を使って、変数の型づけをすることもできます。

var dataInstance:com.network.Data = new Data();

'import'ステートメントを使うと、パッケージをスクリプトにインポートすることができます。そうすると、パッケージパスを省略したクラス名を使うことができ、完全な記述によるクラス名を使用する必要がありません。また、ワイルドカード(*)を使って、パッケージ内のすべてのクラスをインポートすることもできます。

たとえば、UserClassという名前のクラスを作成して、パッケージフォルダパスmacr/util/usersに格納したとします。

// macr/util/users/UserCass.asファイル内
class macr.util.users.UserClass {...}

そして、他のスクリプトで、このクラスを'import'ステートメントを使ってインポートします。

import macr.util.users.UserClass;

その後同じスクリプト中では、クラスをその名前だけで参照することができます。

var myUser:UserClass = new UserClass();

ワイルドカード(*)を使えば、特定のパッケージ内のクラスすべてをインポートすることもできます。たとえば、macr.utilという名前のパッケージがあって、2つのActionScriptクラスファイルfoo.asとbar.asが格納されていたとします。他のスクリプトから、パッケージ内の両方のクラスを、ワイルドカードの使用によりつぎのようにインポートすることができます。

import macr.util.*;

同じスクリプト中では、fooとbarのどちらのクラスも直接参照することができます。

var myFoo:foo = new foo();
var myBar:bar = new bar();

'import'ステートメントは、それを呼出したスクリプト(フレームまたはオブジェクト)内でのみ有効です。インポートしたクラスがスクリプトで使用されなかった場合、そのクラスは書出したSWFのバイトコードには含まれません。また、そのクラスは、'import'ステートメントが記述されたFLAファイルから読込むSWFファイルで使用することもできません。なお、'import'の項をご参照ください。

出典
ActionScript Reference Guideより邦訳。

_____
作成者: 野中文雄
作成日: 2003年11月27日


Copyright © 2001-2003 Fumio Nonaka.  All rights reserved.