ActionScriptクラスファイルをフォルダに入れるときの注意(1/31セミナーのフォロー)
先日のセミナーに参加された皆さま、お疲れさまでした。
最後あたりにあったご質問のカスタムクラスのことで補足します。

MovieClipクラスを拡張・継承させて、MovieClipPlusというクラスを自作、元々無かったメソッドmoves()を作り、外部asファイルをflaファイルと同階層ではなく、下位階層など、フォルダでまとめる際に注意しなければいけない点です。
サンプルファイルはこちらからダウンロードしてください。
最後あたりにあったご質問のカスタムクラスのことで補足します。
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{
さらに、asファイルのクラス内の最初で
package classes{
というように、packageの後に半角スペース、そしてフォルダ名と入れます。
これでOKです。
まとめると、以下の3つ。
・フレームアクションには最初に import classes.MovieClipPlus;
・クラスファイルには package classes{
・リンケージパネル内でクラス命名は classes.MovieClipPlus
と、いずれにせよ、フォルダ名を無視してしまうとエラーが起きたり、予想もつかない動作をしたりします。
フレームアクション↓
「classes」というフォルダに入っているASクラス、「MovieClipPlus.as」内のソース↓
と、いずれにせよ、フォルダ名を無視してしまうとエラーが起きたり、予想もつかない動作をしたりします。

