| 18 | 重要なのは、新たなクラスを定義したい場合は、その都度ファイルを増やさなければならない、ということと、クラス定義以外の場所に変数や関数、ましてや生の処理などを書くことはできない、ということです。 |
| 19 | |
| 20 | === main() 関数 === |
| 21 | |
| 22 | MTASC を使って Action Script 2 プログラムを作成する場合、プログラムのどこかに、エントリーポイントとなる '''main() 関数'''を記述する必要があります。エントリーポイントとは、要するにできあがった swf ファイルを開いたときに、まず最初に実行される関数のことです。 |
| 23 | |
| 24 | とりあえず、何か動くものを実際に書いてみましょう。以下のサンプルは、画面の左上隅に、"Hello, World!" という文字列を表示するだけのプログラムです。まずはこれを、 hello.as ファイルに保存してください。 |
| 25 | |
| 26 | {{{ |
| 27 | #!js |
| 28 | class Hello { |
| 29 | // プログラムはこの関数から処理が始まる。 |
| 30 | static function main(mc:MovieClip) { |
| 31 | mc.createTextField("hello_tf", 1, 0, 0, 640, 480); |
| 32 | mc.hello_tf.text = "Hello, World!"; |
| 33 | } |
| 34 | } |
| 35 | }}} |
| 36 | |
| 37 | ここで、このプログラムを |
| 38 | |
| 39 | {{{ |
| 40 | #!js |
| 41 | class Hello { |
| 42 | |
| 43 | // ... |
| 44 | |
| 45 | } |
| 46 | }}} |
| 47 | |
| 48 | で包んでやらなければいけないのは何故かというと、そういう決まりになっているから、としか言えません。内容的にはクラスにする必要のないプログラムですが、クラスとして書かないとそもそもコンパイルが通らないので、どーしよーもないのです。 |
| 49 | |
| 50 | このプログラムをコンパイルするには、ターミナル上で以下のコマンドを実行します。 |
| 51 | |
| 52 | {{{ |
| 53 | $ mtasc -swf hello.swf -main -header 640:480:15 hello.as |
| 54 | }}} |
| 55 | |
| 56 | mtasc コマンドのオプションについては [[wiki:HowTo/MtascTutorial MTASC チュートリアル]を参照してください。ここでは 640x480 ピクセルサイズでフレームレートが 15fps の Flash ムービーとして、 main() 関数から処理が始まる Flash ファイル hello.swf が生成される、という内容になっています。 |
| 57 | |
| 58 | === ムービークリップ === |
| 59 | |
| 60 | Web ブラウザ上で動作する !JavaScript が HTML 文書を中心に回っているとするなら、 Flash ムービー上で動作する Action Script 2 はムービーを中心に回っている、とすることができます。観念として、ムービーは複数の'''ムービークリップ'''がツリー状に連なって構成されており、それらのムービーに絵や文字を載せて、動かしたり、入れ替えたりすることによって、一つのムービーが表現される、という世界観です。 |
| 61 | |
| 62 | main() 関数に渡される引数もまた、ムービークリップです。この引数に渡されるムービークリップは、そのムービーのルートムービークリップと呼ばれるもので、グローバル変数 _root としてアクセスできるのと全く同じものです。このムービークリップをツリー構造の根っことして、その配下に新たに生成したり、読み込んだりしたムービークリップを継ぎ足していくことで、ムービーを完成させます。 |