ActionScriptクラスファイルをフォルダに入れるときの注意(1/31セミナーのフォロー)

2009年2月 2日 10:05

先日のセミナーに参加された皆さま、お疲れさまでした。
最後あたりにあったご質問のカスタムクラスのことで補足します。

クラスをフォルダに入れて呼び出す時の注意

MovieClipクラスを拡張・継承させて、MovieClipPlusというクラスを自作、元々無かったメソッドmoves()を作り、外部asファイルをflaファイルと同階層ではなく、下位階層など、フォルダでまとめる際に注意しなければいけない点です。
サンプルファイルはこちらからダウンロードしてください。

同階層にclassesというフォルダを作りました、その中にASファイルを入れると、まず今回のようなサンプルの場合、フレームアクションの最初に以下の様に書きます。

import classes.MovieClipPlus;

import の後に、フォルダ名、フォルダが続く場合はさらにドットでつなげます。
詳しく言いますと、最後にそのフォルダ内のクラス名(クラス名とファイル名は一緒ですので)を書く、ただし、フォルダ内を全て参照したい場合、例えば

import classes.*

のように * (アスタリスク)を付けて複数行書かなくても済むやり方もある、ということも付け加えておきます、ワイルドカードのようなものと言えましょうか。

さらに、リンケージされたMovieClipを使う場合、リンケージを設定する画面でクラス名を指定するところがありますが、通常はここにMovieClipPlusと入力すると、外部ASファイルと、リンケージされたシンボルが、合わさって動作する形になるのですが、ここで注意が必要です。

フォルダにクラスファイルを入れておく場合、こちらも階層ごと、入力しないといけません。
結構ハマりやすかったので、気をつけましょう。
↓↓

リンケージの注意
MovieClipPlusだけだと参照出来ません、(同階層に存在しないので)

リンケージの注意
classes.MovieClipPlus と、入力、フォルダ名はここでもドットでつなぐ。

さらに、asファイルのクラス内の最初で

package classes{

というように、packageの後に半角スペース、そしてフォルダ名と入れます。

これでOKです。

まとめると、以下の3つ。

・フレームアクションには最初に import classes.MovieClipPlus;
・クラスファイルには package classes{
・リンケージパネル内でクラス命名は  classes.MovieClipPlus

と、いずれにせよ、フォルダ名を無視してしまうとエラーが起きたり、予想もつかない動作をしたりします。



フレームアクション↓ 「classes」というフォルダに入っているASクラス、「MovieClipPlus.as」内のソース↓

デザイナーさんのためのActionScript3.0講座リスト

siteInformation

info@akibahideki.com

カテゴリ
Author
秋葉秀樹

秋葉秀樹(アキバヒデキ)

DTP上がりのデザイナー
ノンプログラマー!
フリーランスのデザイナー。
IllustratorやPhotoshopを初代バージョンから使っているという事がウリ。
クリエイター育成機関などでお世話になり、先生として講義をしていたりします。