JAVAC.JP
HOSHI TETSUYA 星鉄矢
2005/07/25
hossy@javac.jp
http://www.javac.jp
Google
WWW を検索 WWW.JAVAC.JP を検索

1-3 ActionScript2.0の基礎・クラスの作成

ActionScript2.0において、文法はECMA4に準拠する形を採っており、JavaやC++によく似た構文を用います。
一方で、明記しない限り、状況に応じて文字列と数値間の変換が行われるなど、PerlやPHPのような特徴もあります。また、数値は全て実数扱いです。(数値型はNumber型しかない。)
以下に文法の特徴を列挙します。
・大文字・小文字は区別して扱われる
・変数の型指定は var a:Number; のように記述する。この例では変数aはNumber型
・行の区切り文字にはセミコロン( ; )を用いる
・begin end でなく { } でクラスやメソッドの始まりと終わりを示す
・ドットシンタックスでクラス内メソッドへのアクセスを行う
実際にサンプルを載せます。タイムラインに #include "main.as" の記述をすることで、以下のmain.asファイルに記載されたコマンドが実行されます。
main.as
---
for(var i:Number=0;i<10;i++){
    var k:Number=i*i;
    trace("count : "+i+" : "+i+"^2="+k);
}
stop();
四則演算は他言語同様、 + - * / で行います。forループも他言語同様です。
traceコマンドはデバックウィンドウに文字列を出力します。trace文1行ごとに自動改行されます。

次にクラスの作成と実行をしてみましょう。
クラスの作成にはclass文、function文を用います。
クラスは class{ } 文で作成します。クラス名はそのASファイル名と一致しなければなりません。
クラスには、コンストラクタをつけることができ、クラス生成時に実行する内容を記述します。コンストラクタの記述にはfunction文を用いますが、型指定ができません。
メソッドの作成にはfunction文を用います。function メソッド名(引数:引数の型):戻り値の型のように記述します。戻り値がある場合、メソッド内にreturn文で値を返さなくてはなりませんし、その値の型はメソッド宣言の際の型と一致する必要があります。
Coounter.as
---
class Counter{
    private var count:Number;

    function Counter(){
        trace("Counter, Construction.");
        count=0;
    }

    public function upCount(n:Number):Void{
        count+=n;
    }

    private function getCount():Number{
        return count;
    }

    public function printCount():Void{
        trace("Count : "+count);
    }
}
クラスのメンバ変数をメソッドの外に書くことができます。メソッド内で定義した変数は、メソッド終了後破棄されますし、クラス内定義変数は、クラスインスタンスを破棄した際に破棄されます。
引数を取らないメソッドではメソッドの後ろの ( ) は空のままです。 private文によりその変数へのアクセスは、そのクラス及びそのクラスから派生したクラスからのアクセスのみに限定されます。
public文により、クラス外からのアクセスを許可します。修飾子なしのメンバは、public宣言したものと同様に扱われます。

クラスの作成を行いましたが、クラスはタイムラインから実行されて初めて、その機能を果たします。
タイムラインに #include "main.as" と記述し、main.asファイルを作成してください。
main.as
---
var counter:Counter=new Counter();
counter.upCount(10);
counter.printCount();
counter.upCount(25);
counter.printCount();
stop();
他言語(Java, C++, C# など)の経験のある方には、当たり前のことでしたが、クラスに関しての簡単な説明は以上です。



BACKTOPNEXT




All Contents Copyright (C) 2005 HOSHI Tetsuya
Home