外部ASの取り込み_Flash
外部ASの取り込み(#include)
いわゆるC言語で言う「#include」と同じです。FlashでもActionScriptのソースを外部で記述して「#include」することができます。
[AddTest.as]
function AddVal(a, b) { return (a + b); }
[ルートでのActionScript]
#include "AddTest.as" ret = AddVal(25, 12);
結果、ret内には37が入ります。これは、外部ファイルである「AddTest.as」を取り込むことになります。拡張子は「as」で指定します。なお、asファイルはFlash開発用のソースファイル(fla)と同じディレクトリに置くようにします(swfで実行する場合にはこのasファイルはいらないです)。
asファイルの実態は単なるActionScriptのソースファイルになります。実行時は、このasファイルの中身が#includeされた位置に展開された状態になります。
ですので、変数などはグローバル関数的に展開されますのでどこからでも参照できることになります。
[AddTest.as]
g_val = 135; function AddVal(a, b) { return (a + b); }
[ルートでのActionScript]
#include "AddTest.as" trace(g_val);
みたいにすると、「Addtest.as」での「g_val = 135;」がグローバル変数扱いになって、呼び出し側での「trace(g_val);」ではそのまま「135」が出力されることになります。
また、FlashでのActionScriptエディタは狭く使いにくいものでもあります。ですので、外部のテキストエディタで記述してソース(AS)を構造化管理してそれを「#include」で内包する、とすると開発効率のアップにもつながるかもしれません。ゲームなどを作る場合は、ほんとに「xxxx.as」だらけになって、データ(シンボルなど)はFlash統合環境内で作成、ActionScriptは外部のテキストエディタ(秀丸など)で作成・管理みたいになります(^_^;;。こうなるとデザインツールのFlashといえども、すでにプログラマの友になっちゃいますねぇ。実際、FlashMX2004(ActionScript 2.0)ではJava言語に近づいた構造になっています。
ゲームのような規模になってくるとソースの構造化(および機能の構造化(関数・クラスの使用))は必須になってきます。そうしないと収集がつかなくなりますので、
- 大きな機能ごとにファイルに分ける(xxxx.asファイルにソース記述)
- まとまった機能ごとにクラスに分ける
- 処理単位として関数を使う
という「分割管理」を心がけるとGoodです。
Future's Laboratory 技術格納庫 2004-2013 Yutaka Yoshisaka.