オブジェクト内のデータの整理

ステージ上に配置できる "オブジェクト" としては、たとえば MovieClip オブジェクトなどがありますが、そうしたオブジェクトの内部には他のムービークリップを含めることができます。テキストフィールド、ムービークリップ、およびボタンは、ステージ上に配置された場合、オブジェクトと呼ばれることもよくあります。

一方、ActionScript におけるオブジェクトとは、プロパティやメソッドの集まりです。オブジェクトにはそれぞれ独自の名前があり、各オブジェクトは特定のクラスの 1 つのインスタンスです。ビルトインオブジェクトとは、ActionScript であらかじめ定義されているクラスのオブジェクトです。たとえば、ビルトインクラス Date は、ユーザーのコンピュータのシステムクロックの情報を提供します。ビルトインクラス LoadVars を使用すると、SWF ファイルに変数をロードすることができます。

また、オブジェクトやクラスは ActionScript を使用して作成することもできます。人の名前、住所、電話番号などのデータの集まりを保持するオブジェクトを作成することができます。イメージのカラー情報を保持するオブジェクトを作成することもできます。オブジェクト内のデータを整理することは、Flash ドキュメントをより整然とした状態に保つために役立ちます。メソッドとプロパティの集まりを保持するカスタムクラスの作成の一般的な情報については、カスタムクラスファイルの記述を参照してください。ビルトインクラスとカスタムクラスの詳細については、クラスを参照してください。

ActionScript には、オブジェクトを作成する方法が複数用意されています。次の例では、2 つの異なる方法で単純なオブジェクトを作成し、各オブジェクトの内容をループ処理します。

Flash で単純なオブジェクトを作成するには :

  1. 新しい Flash ドキュメントを作成し、simpleObjects.fla という名前で保存します。
  2. タイムラインのフレーム 1 を選択し、[アクション] パネルに次の ActionScript を入力します。
    // 第 1 の方法
    var firstObj:Object = new Object();
    firstObj.firstVar = "hello world";
    firstObj.secondVar = 28;
    firstObj.thirdVar = new Date(1980, 0, 1); // January 1, 1980
    

    このコードは、単純なオブジェクトを作成する方法の 1 つを示しています。ここでは、新しいオブジェクトインスタンスを作成し、オブジェクト内のいくつかのプロパティを定義しています。

  3. 手順 2 で入力したコードの後に次の ActionScript を入力します。
    // 第 2 の方法
    var secondObj:Object = {firstVar:"hello world", secondVar:28, thirdVar:new Date(1980, 0, 1)};
    

    これは、オブジェクトを作成するもう 1 つの方法です。両方とも、オブジェクトは同じです。このコードは、新しいオブジェクトを作成し、オブジェクトの簡易記法を使用していくつかのプロパティを初期化しています。

  4. 作成した各オブジェクトをループ処理し、各オブジェクトの内容を表示するために、タイムラインのフレーム 1 のこれまでに入力したコードの後に、次の ActionScript を追加します。
    var i:String;
    for (i in secondObj) {
        trace(i + ": " + secondObj[i]);
    }
    
  5. [制御]-[ムービープレビュー] を選択すると、[出力] パネルに次のテキストが表示されます。
    firstVar: hello world
    secondVar: 28
    thirdVar: Tue Jan 1 00:00:00 GMT-0800 1980
    

メモ

 

変数は必ずしもこの順序で [出力] パネルに表示されるとは限りません。for..in ループを使用する場合、順序についての保証はありません。オブジェクトの内容は、プレーヤーから予期しない順序で返されます。

配列を使用してオブジェクトを作成することもできます。firstname1firstname2、および firstname3 などの一連の変数で変数の集まりを表す代わりに、オブジェクトの配列を作成して同じデータを表すことができます。次にこの方法を示します。

配列を使用してオブジェクトを作成するには :

  1. 新しい Flash ドキュメントを作成し、arrayObject.fla という名前で保存します。
  2. タイムラインのフレーム 1 を選択し、[アクション] パネルに次の ActionScript を入力します。
    var usersArr:Array = new Array();
    usersArr.push({firstname:"George"});
    usersArr.push({firstname:"John"});
    usersArr.push({firstname:"Thomas"});
    

    配列やオブジェクトに変数をまとめて整理する利点は、次の手順に示すように、変数をループ処理してその値を表示することが非常に簡単になることです。

  3. 手順 2 で追加した ActionScript の後に、次のコードを入力します。
    var i:Number;
    for (i = 0; i < usersArr.length; i++) {
        trace(usersArr[i].firstname); // George, John, Thomas
    }
    
  4. [制御]-[ムービープレビュー] を選択すると、[出力] パネルに次のテキストが表示されます。
    George
    John
    Thomas
    

次の例では、オブジェクトをループ処理するもう 1 つの方法を示します。この例では、オブジェクトを作成し、for..in ループを使用してループ処理し、各プロパティを [出力] パネルに表示します。

var myObj:Object = {var1:"One", var2:"Two", var3:18, var4:1987};
var i:String;
for (i in myObj) {
    trace(i + ": " + myObj[i]);
}
// 出力は次のとおり
/*
    var1: One
    var2: Two
    var3: 18
    var4: 1987
*/

for ループの作成の詳細については、for ループの使用を参照してください。for...in ループの詳細については、for..in ループの使用を参照してください。オブジェクトの詳細については、クラスを参照してください。


 

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

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