カスタムクラスファイルの記述

次の例では、クラスファイルの各部分を検証します。クラスを記述する方法と、Flash で使用するためにクラスを変更して拡張する方法について学習します。クラスの各部分と、その読み込み方法、および Flash でカスタムクラスファイルを使用する上での関連情報についても学習します。

まず、簡単なクラスから始めます。次の例では、UserClass という簡単なクラスの構成を示します。

クラスを定義するには、アクションパネルで記述しているスクリプト内ではなく、外部のスクリプトファイルで class キーワードを使用します。このクラス定義の構造は、インターフェイスファイルにも当てはまります。この構造を次にまず示し、続いて、クラスの作成について説明します。

次の例では、User という名前の簡単な ActionScript クラスの場合を示します。

クラスファイルを作成するには :

  1. [ファイル]-[新規] を選択し、[ActionScript ファイル] を選択して、[OK] をクリックします。
  2. [ファイル]-[名前を付けて保存] を選択し、ファイルを User.as という名前で保存します。
  3. 次の ActionScript コードをスクリプトウィンドウに入力します。
    /**
        User クラス
        作成者 : John Doe
        バージョン : 0.8
        変更日 : 08/21/2005
        著作権 : Adobe Systems Incorporated
    
        このコードでは、新規ユーザーの作成とユーザーログイン情報の指定ができるカスタム User クラスを定義する。
    */
    
    class User {
        // プライベートインスタンス変数
        private var __username:String;
        private var __password:String;
    
        // コンストラクタステートメント
        public function User(p_username:String, p_password:String) {
            this.__username = p_username;
            this.__password = p_password;
        }
    
        public function get username():String {
            return this.__username;
        }
        public function set username(value:String):Void {
            this.__username = value;
        }
    
        public function get password():String {
            return this.__password;
        }
        public function set password(value:String):Void {
            this.__password = value;
        }
    }
    
  4. 変更内容をクラスファイルに保存します。

    前述のコードは、クラス名、作成者、バージョン、最終修正日、著作権情報、クラスの機能概要を示す標準的な "ドキュメントコメント" で始まります。

    User クラスのコンストラクタステートメントには p_username パラメータと p_password パラメータがあり、クラスのプライベートインスタンス変数である __username__password にコピーされます。クラス内のその他のコードでは、プライベートインスタンス変数の getter プロパティと setter プロパティを定義します。読み取り専用プロパティを作成する場合は、getter 関数を定義し、setter 関数は定義しません。たとえば、ユーザー名を定義した後に変更できないようにするには、User クラスファイルの username setter 関数を削除します。

  5. [ファイル]-[新規] を選択し、[Flash ドキュメント] を選択します。
  6. [ファイル]-[名前を付けて保存] を選択し、ファイルを user_test.fla という名前で保存します。保存場所は、"User.as" と同じディレクトリにします。
  7. 次の ActionScript をタイムラインのフレーム 1 に入力します。
    import User;
    var user1:User = new User("un1", "pw1");
    trace("Before:");
    trace("\t username = " + user1.username); // un1
    trace("\t password = " + user1.password); // pw1
    user1.username = "1nu";
    user1.password = "1wp";
    trace("After:");
    trace("\t username = " + user1.username); // 1nu
    trace("\t password = " + user1.password); // 1wp
    

    ここで作成した User クラスは非常に単純なので、Flash ドキュメントの ActionScript も単純明快なものになっています。コードの第 1 行では、カスタム User クラスを Flash ドキュメントに読み込みます。User クラスを読み込むと、そのクラスをカスタムデータ型として使用することができます。

    User クラスの単一インスタンスが定義され、user1 という名前の変数に割り当てられます。user1 User オブジェクトに値を代入し、un1username を定義し、pw1password を定義します。次の 2 つの trace ステートメントでは、User クラスの getter 関数を使用して、user1.usernameuser1.password の現在値をストリングで表示します。その次の 2 行では、User クラスの setter 関数を使用して、username 変数と password 変数に新しい値を設定します。最後に、usernamepassword の値を [出力] パネルに表示します。この trace ステートメントでは、setter 関数を使用して設定した変更後の値が表示されます。

  8. FLA ファイルを保存し、[制御]-[ムービープレビュー] を選択してファイルをテストします。

    trace ステートメントの結果が [出力] パネルに表示されます。次の例では、これらのファイルをアプリケーションで使用します。

XML データとカスタムクラスファイルを使用して動的にメニューを作成する方法を示すサンプルについては、Flash サンプルページ (www.adobe.com/go/learn_fl_samples_jp) を参照してください。このサンプルでは、ActionScript XmlMenu() コンストラクタを呼び出し、XML メニューファイルへのパスおよび現在のタイムラインへの参照をパラメータとして渡します。"Samples" zip ファイルをダウンロードし解凍して、"ActionScript2.0/XML_Menu" フォルダに移動して次のサンプルにアクセスします。


 

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

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