2009/08/27 13:30

Web

  

パッケージで作ったクラスをMovieClipとしてFlash内に登録する

さてさて。

FLASHをAS3で作っていると、必然的にクラス数が増えますし、ましてや継承を繰り返せばもはや何がどこにあるのか分からないなんて状況になってしまうことも、決して珍しくはないでしょう。

そんな時はパッケージを作成します。

一般的に、例えば外部のASファイル(有名どこでTweener)などを用いたことがある人は分かると思いますが、パッケージを作成することでクラスをフォルダの中に集めて、実際に作りたいクラスの入っているフォルダの中に入れてもすっきり見ることが出来ます。
また、アクセスを整理することも出来るので、パッケージ内でのみの変数を作成したり、ファイルが巨大になればなるほどパッケージで分類するのは必須の作業になります。

パッケージは、クラスを作るときに最初に書くpackageという文言の後に、実際に入れるディレクトリを記入します。
URLのようなとらえ方をしてまず問題ないです。
一般的に配布するようなケースでは、パッケージは他の人の作成したパッケージとも共存出来るようにする必要性があるので、僕の場合は
package net.u823 { …}
という感じで作成して、ディレクトリも/net/u823/として作成します。

ちなみに、パッケージにすると他のディレクトリに存在するクラスからアクセスするにはimportが必要になるので、そこらへんも気をつけて作る必要性があります。
また、表題の件ですが、上記の理由により実際にFLASHの中にMovieClipなどで登録しようとすると、ちょっと一手間必要になります。

例えば、普通にクラスを作成してFLASHのMovieClipとして登録しようとすると、FLASHは自動でそのクラスを取り込んでくれるので、基本的に何もやる必要はありません。
しかし、パッケージ内にあるクラスを登録しようとすると、つまりはimportのような指定をFLASHのMovieClipでしてやる必要性があるのです。

まぁ文章で書いているとややこしいので何のことかよく分からない人も多いと思いますが、実際には簡単。
例えば、
/net/u823/に、TestClass extends MovieClip
というクラスを登録して、そのTestClassをFLASH内に登録するには、リンケージの際に表示される基本クラスというものにパスを通す必要性があります。
この場合は、
.net.u823.TestClassと登録しておく必要性があるわけです。

ちなみに、flaファイルのあるフォルダに入っているクラスなら、基本クラスは空白になっているはずです。
つまり同じディレクトリ内なのでパスを通す必要性がないわけですね。

パッケージは、ファイル数が50個くらいになってくると必須作業です。
以前に作ったものでパッケージをほとんど作成してないものは、後から修正しようとした時に何をどこに置いたのか分からなくなるものが多数…日ごろから整理整頓をする必要性がありますね。

TrackBack :

Comments






使用可能タグ: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>