クラスメンバーの使用

クラスメンバー (静的メンバー) の用途の 1 つは、クラスとそのインスタンスについての状態情報を保持することです。たとえば、特定のクラスから作成されたインスタンスの数を追跡する場合などが考えられます。これを実現する簡単な方法は、新しいインスタンスが作成されるたびにインクリメントされるクラスプロパティを使用することです。

次の例では、widgetCount という名前の静的インスタンスカウンタを定義する Widget というクラスを作成します。このクラスの新規インスタンスが作成されるたびに、widgetCount の値が 1 ずつインクリメントされ、widgetCount の現在値が [出力] パネルに表示されます。

クラス変数を使ったインスタンスカウンタを作成するには :

  1. [ファイル]-[新規] を選択し、[ActionScript ファイル] を選択して、[OK] をクリックします。
  2. 次のコードをスクリプトウィンドウに入力します。
    class Widget {
        // クラス変数を初期化する
        public static var widgetCount:Number = 0; 
        public function Widget() {
            Widget.widgetCount++;
            trace("Creating widget #" + Widget.widgetCount);
        }
    }
    

    widgetCount 変数は static として宣言されているので、一度だけ 0 に初期化されます。Widget クラスのコンストラクタステートメントが呼び出されるたびに、widgetCount に 1 が加算され、現在作成されているインスタンスの数が表示されます。

  3. このファイルを Widget.as という名前で保存します。
  4. [ファイル]-[新規] を選択し、[Flash ドキュメント] を選択して新しい FLA を作成し、"Widget.as" と同じディレクトリに widget_test.fla という名前で保存します。
  5. "widget_test.fla" で、タイムラインのフレーム 1 に次のコードを入力します。
    // クラスのインスタンスを 1 つも作成していないときは、
    // Widget.widgetCount はゼロ (0)。
    trace("Widget count at start: " + Widget.widgetCount); // 0
    var widget1:Widget = new Widget(); // 1
    var widget2:Widget = new Widget(); // 2
    var widget3:Widget = new Widget(); // 3
    trace("Widget count at end: " + Widget.widgetCount); // 3 
    
  6. 変更内容を "widget_test.fla" に保存します。
  7. [制御]-[ムービープレビュー] を選択してファイルをテストします。

    [出力] パネルに次の情報が表示されます。

    Widget count at start: 0
    Creating widget # 1
    Creating widget # 2
    Creating widget # 3
    Widget count at end: 3
    

 

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

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