中括弧

ActionScript イベント、クラス定義、および関数は、中カッコ ({}) を使ってブロックにまとめます。同じ行に、宣言として左カッコを配置します。

メモ

 

宣言の次の行にも左カッコを配置することができます。コーディング規則では、一貫性のために同じ行に左カッコを配置することが推奨されています。カッコとコーディング規則の詳細については、ActionScript 2.0 のベストプラクティスとコーディング規則を参照してください。

制御構造 (if-else または for など) の要素となるステートメントは、たとえ 1 つだけでも中カッコで囲むようにしてください。このような習慣を付けておくと、中カッコの付け忘れによる ActionScript のエラーを回避しやすくなります。次の例は、良くない書き方です。

var numUsers:Number;
if (numUsers == 0)
  trace("no users found.");

このコードは間違いではありませんが、ステートメントを中括弧で囲んでいないので、推奨される書き方とは言えません。

ヒント

 

[自動フォーマット] ボタンをクリックすると、このステートメントに中括弧が追加されます。

この trace ステートメントの後に別のステートメントを追加すると、2 番目のステートメントは、numUsers 変数が 0 かどうかに関係なく実行されますが、これによって予期しない結果となる可能性があります。そこで、コードに次のような中カッコを追加すれば混乱が避けられます。

var numUsers:Number;
if (numUsers == 0) {
  trace("no users found");
}

次の例では、イベントリスナーオブジェクトと MovieClipLoader インスタンスの両方を作成します。

var imgUrl:String = "http://www.helpexamples.com/flash/images/image1.jpg";
this.createEmptyMovieClip("img_mc", 100);
var mclListener:Object = new Object();
mclListener.onLoadStart = function() {
    trace("starting");
};
mclListener.onLoadInit = function(target_mc:MovieClip):Void {
    trace("success");
};
mclListener.onLoadError = function(target_mc:MovieClip):Void {
    trace("failure");
};
var myClipl:MovieClipLoader = new MovieClipLoader();
myClipl.addListener(mclListener);
myClipl.loadClip(imgUrl, img_mc);

次の例では、Student オブジェクトを作成するために使用できる、簡単なクラスファイルを表示します。クラスファイルの詳細については、クラスを参照してください。

ActionScript ファイルで中カッコを使用するには :

  1. [ファイル]-[新規] を選択し、[ActionScript ファイル] を選択します。
  2. [ファイル]-[名前を付けて保存] を選択し、新しいドキュメントに Student.as という名前を付けて保存します。
  3. AS ファイルに次の ActionScript を追加します。
    // Student.as
    class Student {
        private var _id:String;
        private var _firstName:String;
        private var _middleName:String;
        private var _lastName:String;
    
        public function Student(id:String, firstName:String, middleName:String, lastName:String) {
            this._id = id;
            this._firstName = firstName;
            this._middleName = middleName;
            this._lastName = lastName;
        }
        public function get firstName():String {
            return this._firstName;
        }
        public function set firstName(value:String):Void {
            this._firstName = value;
        }
        // ...
    }
    
  4. クラスファイルを保存します。
  5. [ファイル]-[新規] を選択し、[Flash ドキュメント] をクリックして新しい FLA ファイルを作成します。
  6. 新しい FLA ファイルに student_test.fla という名前を付けて保存します。
  7. メインタイムラインのフレーム 1 に次の ActionScript を入力します。
    // student_test.fla
    import Student;
    var firstStudent:Student = new Student("cst94121", "John", "H.", "Doe");
    trace(firstStudent.firstName); // John
    firstStudent.firstName = "Craig";
    trace(firstStudent.firstName); // Craig
    
  8. [ファイル]-[保存] を選択して "student_test.fla" への変更内容を保存します。
  9. [制御]-[ムービープレビュー] を選択して FLA ファイルおよび AS ファイルをテストします。

次の例では、関数を操作するときの中カッコの使用方法を示します。

関数と共に中カッコを使用するには :

  1. [ファイル]-[新規] を選択し、[Flash ドキュメント] を選択して新しい FLA ファイルを作成します。
  2. [ファイル]-[名前を付けて保存] を選択し、新しいドキュメントに checkform.fla という名前を付けます。
  3. Label コンポーネントのインスタンスを、[コンポーネント] パネル内からステージにドラッグします。
  4. プロパティインスペクタ ([ウィンドウ]-[プロパティ]-[プロパティ]) を開き、Label コンポーネントインスタンスを選択した状態で、インスタンス名 status_lbl を [インスタンス名] テキストボックスに入力します。
  5. [W (幅)] テキストボックスに「200」と入力して、コンポーネントの幅を 200 ピクセルに変更します。
  6. TextInput コンポーネントのインスタンスをステージにドラッグし、firstName_ti というインスタンス名を付けます。
  7. Button コンポーネントのインスタンスをステージにドラッグし、submit_button というインスタンス名を付けます。
  8. タイムラインのフレーム 1 を選択し、[アクション] パネルに次の ActionScript を追加します。
    function checkForm():Boolean {
        status_lbl.text = "";
        if (firstName_ti.text.length == 0) {
            status_lbl.text = "Please enter a first name.";
            return false;
        }
        return true;
    }
    function clickListener(evt_obj:Object):Void {
        var success:Boolean = checkForm();
    };
    submit_button.addEventListener("click", clickListener);
    
  9. [ファイル]-[保存] を選択して Flash ドキュメントを保存します。
  10. [制御]-[ムービープレビュー] を選択して、オーサリング環境でコードをテストします。

    SWF ファイルで、firstName_ti TextInput コンポーネントにテキストがない場合に Button インスタンスをクリックすると、エラーメッセージが表示されます。このエラーは Label コンポーネントで表示され、名を入力する必要があることをユーザーに伝えます。

中カッコを使用した次の例では、オブジェクト内にプロパティを作成および定義する方法を示します。この例では、中カッコ ({}) 内に変数名を指定することで、オブジェクトにプロパティが定義されます。

var myObject:Object = {id:"cst94121", firstName:"John", middleName:"H.", lastName:"Doe"};
var i:String;
for (i in myObject) {
    trace(i + ": " + myObject[i]);
}
/*
    id: cst94121
    firstName: John
    middleName: H.
    lastName: Doe
*/

new Object() 関数では、シンタックスのショートカットとして空白の中カッコを使用することもできます。たとえば、次のコードでは、空白の Object インスタンスを作成しています。

var myObject:Object = {};

ヒント

 

左中カッコに対しては、対応する右カッコが必要です。


 

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

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