ドット演算子と配列アクセス演算子の使用

ドット演算子 (.) と配列アクセス演算子 ([]) を使用すると、ActionScript のビルトインプロパティや、カスタムプロパティにアクセスすることができます。ドット演算子は、オブジェクトの特定のインデックスをターゲットにするために使用します。たとえば、次の ActionScript に示すように、ユーザー情報が含まれたオブジェクトがある場合は、配列アクセス演算子で特定のキー名を指定して、ユーザー名を取得することができます。

var someUser:Object = {name:"Hal", id:2001};
trace("User's name is: " + someUser["name"]); // ユーザー名 : Hal
trace("User's id is: " + someUser["id"]); // ユーザー ID : 2001

たとえば、次の ActionScript は、ドット演算子を使用してオブジェクト内で特定のプロパティを設定します。

myTextField.border = true;
year.month.day = 9;
myTextField.text = "My text";

ドット演算子および配列アクセス演算子は非常に似ています。ドット演算子では、識別子がプロパティとして見なされますが、配列アクセス演算子では、その内容が名前として評価され、その名前が付いたプロパティの値にアクセスします。配列アクセス演算子を使用すると、インスタンス名および変数を動的に設定および取得できます。

配列アクセス演算子は、オブジェクトに含まれているキーが完全にわからない場合に役立ちます。この場合は、for..in ループを使ってオブジェクトまたはムービークリップの繰り返し処理を実行し、内容を表示できます。

ドット演算子と配列アクセス演算子を使用するには :

  1. 新しい Flash ドキュメントで、メインタイムラインにムービークリップを作成します。
  2. ムービークリップを選択して、プロパティインスペクタを開きます。
  3. myClip のインスタンス名を入力します。
  4. タイムラインのフレーム 1 に次の ActionScript を追加します。
    myClip.spam = 5;
    trace(myClip.spam); // 5
    

    現在のタイムラインで myClip インスタンスに値を設定する場合は、この ActionScript に示すように、ドット演算子または配列アクセス演算子を使用します。配列アクセス演算子内で式を記述する場合、その式が最初に評価され、結果が変数名として使用されます。

  5. [制御]-[ムービープレビュー] を選択してドキュメントをテストします。

    [出力] パネルに "5" と表示されます。

  6. オーサリング環境に戻り、ActionScript の最初の行を次のコードで置き換えます。
    myClip["spam"] = 10;
    
  7. [制御]-[ムービープレビュー] を選択してドキュメントをテストします。

    [出力] パネルに "10" と表示されます。

  8. オーサリング環境に戻り、myClip インスタンスをダブルクリックします。
  9. 新しい 4 つのインスタンスを myClip インスタンスの内部に追加します。
  10. プロパティインスペクタを使用して、4 つの新しい各インスタンスに、nestedClip1nestedClip2nestedClip3、および nestedClip4 のインスタンス名を追加します。
  11. メインタイムラインのフレーム 1 に次のコードを追加します。
    var i:Number;
    for (i = 1; i <= 4; i++) {
        myClip["nestedClip" + i]._visible = false;
    }
    

    この ActionScript は、ネストされた各ムービークリップの表示と非表示を切り替えます。

  12. [制御]-[ムービープレビュー] を選択して、追加した ActionScript をテストします。

    ネストされた 4 つのインスタンスが非表示になります。配列アクセス演算子を使用して、myClip インスタンスでネストされた各ムービークリップの繰り返し処理を実行し、可視性のプロパティを動的に設定しています。各インスタンスを特にターゲットにする必要がないので、時間を節約することができます。

代入の左側で配列アクセス演算子を使用して、インスタンス、変数、およびオブジェクト名を動的に設定することもできます。

myNum[i] = 10;

ActionScript 2.0 では、動的に作成されるオブジェクトのクラス定義が dynamic 属性で指定されない場合、角カッコを使用して、そのオブジェクトのプロパティにアクセスします。また、この演算子を使用して多次元配列を作成することもできます。配列アクセス演算子を使用した多次元配列の作成の詳細については、多次元配列の作成を参照してください。


 

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

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