Changes between Version 2 and Version 3 of HowTo/ActionScript2Introduction/BasicMatter


Ignore:
Timestamp:
Dec 18, 2010, 12:25:41 AM (14 years ago)
Author:
村山 俊之
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • HowTo/ActionScript2Introduction/BasicMatter

    v2 v3  
    66== 約束事 ==
    77
     8=== 1ファイルにつき 1クラス ===
     9
    810Action Script 2 では、 1つのスクリプトファイルにおいて記述される内容は、 1つのクラス定義のみとなります。それ以外はあり得ません。それ以外というのは具体的に、
    911
     
    1214 * スクリプトファイル中にクラス定義以外のもの (裸の変数や関数、処理など) が存在する。
    1315
    14 ということがあり得ない、という意味です。このスタイルは Java に非常によく似ており、 Java ではかつて、このことを以て「純然たる」オブジェクト指向プログラミング言語であることを主張していましたが、まあそんなことはどうでもいいことです
     16ということがあり得ない、という意味です。このスタイルは Java に非常によく似ており、 Java ではかつて、このことを以て「純然たる」オブジェクト指向プログラミング言語であることを主張していましたが、'''まあそんなことはどうでもいいことです'''
    1517
     18重要なのは、新たなクラスを定義したい場合は、その都度ファイルを増やさなければならない、ということと、クラス定義以外の場所に変数や関数、ましてや生の処理などを書くことはできない、ということです。
     19
     20=== main() 関数 ===
     21
     22MTASC を使って Action Script 2 プログラムを作成する場合、プログラムのどこかに、エントリーポイントとなる '''main() 関数'''を記述する必要があります。エントリーポイントとは、要するにできあがった swf ファイルを開いたときに、まず最初に実行される関数のことです。
     23
     24とりあえず、何か動くものを実際に書いてみましょう。以下のサンプルは、画面の左上隅に、"Hello, World!" という文字列を表示するだけのプログラムです。まずはこれを、 hello.as ファイルに保存してください。
     25
     26{{{
     27#!js
     28class 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
     41class 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
     56mtasc コマンドのオプションについては [[wiki:HowTo/MtascTutorial MTASC チュートリアル]を参照してください。ここでは 640x480 ピクセルサイズでフレームレートが 15fps の Flash ムービーとして、 main() 関数から処理が始まる Flash ファイル hello.swf が生成される、という内容になっています。
     57
     58=== ムービークリップ ===
     59
     60Web ブラウザ上で動作する !JavaScript が HTML 文書を中心に回っているとするなら、 Flash ムービー上で動作する Action Script 2 はムービーを中心に回っている、とすることができます。観念として、ムービーは複数の'''ムービークリップ'''がツリー状に連なって構成されており、それらのムービーに絵や文字を載せて、動かしたり、入れ替えたりすることによって、一つのムービーが表現される、という世界観です。
     61
     62main() 関数に渡される引数もまた、ムービークリップです。この引数に渡されるムービークリップは、そのムービーのルートムービークリップと呼ばれるもので、グローバル変数 _root としてアクセスできるのと全く同じものです。このムービークリップをツリー構造の根っことして、その配下に新たに生成したり、読み込んだりしたムービークリップを継ぎ足していくことで、ムービーを完成させます。