メソッドとプロパティの追加

ClassA クラスと ClassB クラスのプロパティを作成するには、var キーワードを使用して変数を定義します。

メモ

 

次に示す 3 つの実習は、例 : カスタムクラスの記述の一部です。この例を実施する必要がない場合は、www.helpexamples.com/flash/learnas/classes/ からクラスファイルをダウンロードしてもかまいません。

ClassA クラスと ClassB クラスにプロパティを追加するには :

  1. Flash オーサリングツールで "ClassA.as" および "ClassB.as" を開きます。
  2. 次のコードに合致するように、"ClassA.as" ActionScript ファイルを変更します (太字の部分を変更します)。
    class com.adobe.utils.ClassA {
        static var _className:String;
        function ClassA() {
            trace("ClassA constructor");
        }
    }
    

    上記のコードブロックに、現在のクラスの名前を格納するための新規の静的変数 _className を 1 つ追加します。

  3. 前のコードと合致するように、ClassB クラスを変更して、静的変数を追加します。
  4. 次に進む前に、両方の ActionScript ファイルを保存します。

    ヒント

     

    慣例により、クラスのプロパティはクラス本体の先頭で定義します。必須ではありませんが、先頭で定義することにより、コードがわかりやすくなります。

変数の宣言では、後にコロン (:) を付けるシンタックスを使用します (var username:Stringvar age:Number など)。これは、厳密な型指定の例です。変数を var variableName:variableType という形式で宣言しておくと、その変数に代入される値が指定のデータ型に一致するかどうかが ActionScript 2.0 コンパイラによってチェックされます。このクラスを読み込む FLA ファイルで正しいデータ型が使用されていない場合は、コンパイルエラーが発生します。厳密な型指定の詳細については、データ型の割り当てと厳密な型指定についてを参照してください。

クラスのメンバーには、プロパティ (変数宣言) とメソッド (関数定義) の 2 種類があります。すべてのプロパティとメソッドは、クラス本体の中 (つまり中カッコ [{}] 内) で宣言および定義する必要があります。そうしないと、コンパイルエラーが発生します。メンバーの詳細については、パブリック、プライベート、および静的なメソッドとプロパティ (メンバー) についてを参照してください。

ClassA クラスと ClassB クラスにメソッドを追加するには :

  1. Flash オーサリングツールで "ClassA.as" および "ClassB.as" を開きます。
  2. 次のコードに合致するように、ClassA クラスファイルを変更します (太字の部分を変更します)。
    class com.adobe.utils.ClassA {
        static var _className:String;
    
        function ClassA() {
            trace("ClassA constructor");
        }
        function doSomething():Void {
            trace("ClassA - doSomething()");
        }
    }
    

    上記の太字のコードブロックでは、ストリングを [出力] パネルに表示するための新規メソッドをクラスに作成します。

  3. "ClassA.as" で、[ツール]-[シンタックスチェック] を選択して、ActionScript ファイルのシンタックスをチェックします。

    [出力] パネルにエラーが出力される場合は、自分のスクリプトの ActionScript と、前述の手順で記述した完全なコードとを比較します。コードエラーを解決できない場合は、次に進む前に、完成版のコードをスクリプトウィンドウにコピーしてください。

  4. "ClassA.as" と同様に、"ClassB.as" のシンタックスをチェックします。

    [出力] パネルにエラーが出力される場合は、次に進む前に、完成版のコードをスクリプトウィンドウにコピーしてください。

    class com.adobe.utils.ClassB {
        static var _className:String;
    
        function ClassB() {
            trace("ClassB constructor");
        }
        function doSomething():Void {
            trace("ClassB - doSomething()");
        }
    }
    
  5. 次に進む前に、両方の ActionScript ファイルを保存します。

プロパティは、インラインで初期化できます。つまり、次のようにデフォルト値を指定して宣言できます。

class Person {
  var age:Number = 50;
  var username:String = "John Doe";
}

プロパティをインラインで初期化するときには、代入式の右辺に必ずコンパイル時定数を指定します。つまり、右辺の式では、設定や定義が実行時に行われる値を参照することはできません。コンパイル時定数には、ストリングリテラル、数値、ブール値、null、undefined に加えて、Array、Boolean、Number、Object、String というトップレベルクラスのコンストラクタ関数があります。

プロパティをインラインで初期化するには :

  1. Flash オーサリングツールで "ClassA.as" および "ClassB.as" を開きます。
  2. 次の ActionScript コードに合致するように、ClassA クラスファイルを変更します (太字の部分を変更します)。
    class com.adobe.utils.ClassA {
        static var _className:String = "ClassA";
    
        function ClassA() {
            trace("ClassA constructor");
        }
        function doSomething():Void {
            trace("ClassA - doSomething()");
        }
    }
    

    既存のクラスファイルと上記のコードブロックとの違いは、静的変数 _className に値 "ClassA" が定義されている点だけです。

  3. ClassB クラスファイルを変更し、インラインプロパティを追加し、値を "ClassB" に変更します。
  4. 次に進む前に、両方の ActionScript ファイルを保存します。

この規則はインスタンス変数 (クラスの各インスタンスにコピーされる変数) にのみ適用されるもので、クラス変数 (クラスに属する変数) には適用されません。

メモ

 

配列をインラインで初期化した場合、クラスのすべてのインスタンスに対して配列が 1 つだけ作成されます。

これ以降のクラスファイル記述方法については、クラスでのメンバーアクセスの制御を参照してください。


 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000792.html