クラスの使い方

ActionScript2から、Flashではクラスが書けるようになった。クラスとは、再利用可能なコードの集まりであり、ActionScriptのコードに新しい機能を簡単に装備するのに使われ、作業をより簡便に、迅速に行うためのものである。クラスの使い方は、かつてのActionScriptで#includeを使ってファイルをインクルードするのに似ている。ただ、実際にはいくつかの大きな違いがある。

Tweener自身もまたクラスである。さらに言えば、特殊な機能を実現するために、複数の異なるクラスが組み合わせて構成されている。このように、機能を特化させること、そしてスコープを切り分けることこそが、クラスというオブジェクト指向プログラミング(OOP)の背後にある理念なのである。

#includeを使う時と同じように、クラスファイルはフォルダーにコピーすることでインストールされ、使うことができるようになる。よって、クラスをインストールする時に最初に考えなければならないのは、クラスファイルをどこに配置するか、ということである。任意のプロジェクトのフォルダーにするか、それともグローバルクラスフォルダに入れるか。

クラスをグローバルに使用する

グローバルクラスパスにパスを指定し、そのフォルダーにクラスをインストールした場合、全てのプロジェクトからそれらのクラスを利用することができるようになり、特定の作業フォルダーにクラスファイルをコピーする必要はなくなる。クラスを更新する時もまとめて反映させることができる。例えば、Windows PCでFlash CS3を使っている場合、グローバルクラスパスは通常C:\Program Files\Adobe\Adobe Flash CS3\ja\First Run\Classesとなる。他の環境の場合でも、同じようなフォルダーが用意されているか、もしくはグローバルクラスパスを指定するよう要求されることになるだろう。

一般的な視点から見ると、グローバルクラスパスを使うことには2つの短所がある。:

以上のような理由から、通常はクラスファイルをグローバルにではなく、ローカルで使うことが薦められる

クラスをローカルに使用する

クラスファイルは、例えばFlash IDEであれば.FLAファイルと同じフォルダー(他の環境ではそれ用のプロジェクトフォルダーが指定されることもある)など、プロジェクト毎のフォルダーに配置して使うこともできる。デフォルトの設定では、Flashは.Flaファイルのあるフォルダーの中を探して、そこにあるクラスファイルを自動的に取り込んでくれる。あとは、クラスとして適切にインポートしてやれば、使うことが出来るようになる。

このやり方の長所は、それぞれのプロジェクトに特化したクラスファイルを持つことができる点である。ソースをまとめ再配布することも容易であり、望まないアップデートからも逃れることが出来る。

Tweenerクラスをインストールするやり方として薦められるのは、こちらの方法である。

Tweenerクラスを使う

というわけで、Tweenerの場合、インストール(.zipファイルをダウンロードして.FLAのあるフォルダーに解凍する、または用意されたファイルをコピーする)すると、以下のようなファイル構成になる:

myWebsiteProject.fla
caurina/transitions/Tweener.as
caurina/transitions/Equations.as
...etc

FlashIDEで作業をしているとして、"myWebsiteProject.fla"というのが作業中の.FLAファイルだと仮定しよう。

フォルダー構造をどのように構築するのかは、クラスによって異なってくる。例えば、Tweenerの完全なクラス名はcaurina.transitions.Tweenerと記述されるので、Tweener.asファイル(とその他のクラスファイル)は/caurina/transitionsフォルダーの中に配置しなければならない。

caurinaという名前は、何か固有で中立な名前にしようという意図でつけたものである。技術的な点から見れば特に意味はなく、単にTweenerのpackageのパスに過ぎない。

もし仮に、クラスファイルを配置するのに、プロジェクト毎のフォルダーなどではなく、何か特別なフォルダーなどを使っているような場合、Flashがファイルをコンパイルする時にクラスファイルを検索するフォルダーの一覧を示した、ファイルのクラスパスに、目的のクラスのフォルダーがきちんと記載されていることを確認しなければならない。Flash IDEで作業しているならば、「ファイル」>「パブリッシュ設定」メニューを開き、ActionScriptのバージョンを選択するプルダウンメニューの横にある「設定」ボタンをクリックすると、ファイルのクラスパスの一覧を開くことができる。開いたウィンドウで、クラスを入れたフォルダーが適切に設定されていることを確認してほしい。

また、Flashの設定を編集して、グローバルクラスパスを変更することも可能である。

クラスファイルをインストールし、プロジェクトからアクセスすることが出来るようになれば、ActionScriptのソースコードの中で使うことができる。目的のクラスの完全なクラスパスとクラス名を使えば、それらを参照するだけでクラスを使うことは可能である。(完全なクラスパスとクラス名を使えば)クラスファイルがコピーされたフォルダーを特に参照しなかったとしても構わない。例えば、Tweenerのメソッドを実行する場合、このように行うこともできる:

caurina.transitions.Tweener.addTween(mymc, {_alpha:100, time:1});

しかし、このやり方ではコードがかなり長くなってしまう。有り難いことに、Flashではクラスをインポートして、再利用することができるようになっている。このように:

import caurina.transitions.Tweener;

Tweener.addTween(mymc, {_alpha:100, time:1});

表面的には、これは#includeの機能と似ているようにも見える。しかし、この文は、こらからそのクラスを使用しますよ、ということを宣言している以外の何者でもない。実際、インポートするたびにクラスファイルの内容を全てインクルードしているわけではない。その代わり、使用するクラスのクラスファイルは、ムービーの最初のフレーム(またはクラス用に指定したフレーム)にインクルードされることになる。

また、覚えておいて頂きたいのは、(新しいクラスファイルにではなく)タイムライン上にActionScriptのコードを記述する場合、Tweenerを実行するフレーム毎、あるいはMovieClipスコープ毎に、import文を記述しなければならないということである。

参照

メニューの表示について

このページの左側にメニューが表示されていない場合は、ここをクリックするとメニューを表示させることができます。

本ドキュメントについて