サイトトップ

Director Flash 書籍 業務内容 プロフィール

Macromedia Flash非公式テクニカルノート

Window.contentプロパティ

ID: FN0505001 Product: Flash

Platform: All
Version: MX 2004 and above

シンタックス
windowInstance.content

説明
プロパティ(訳者注: 読取り専用[*1]); Windowのコンテンツ(設定したMovieClipの最上位階層のパス)への参照。このプロパティは、MovieClipオブジェクトを返します。[ライプラリ]からシンボルを設定(アタッチ)すると、デフォルト値は設定したシンボルのインスタンスになります。コンテンツをURLからロードすると、デフォルト値はロードの処理が開始するまでundefinedになります。

[訳者注*1] 原文には、記載がありません。しかし、Loader.contentや同じmx.containersパッケージのScrollPane.contentと同じく、読取り専用のプロパティと考えられます。


つぎのコードは、Windowコンポーネント内のコンテンツ(訳者注: に配置されたTextFieldインスタンス)のtextプロパティに、値を設定します[*2][*3]。

myLoginWindow.content.password.text = "secret";


[訳者注*2] Window.contentPathプロパティを設定した直後に、コンテンツにアクセスしても、undefinedが返されます。したがって、コンテンツとして設定したインスタンスの操作は、Window.completeイベントを待って行う必要があります(スクリプト001)。

スクリプト001■Window.completeイベントのリスナーを作成してコンテンツ内のTextFieldに値を設定

// フレームアクション
import mx.managers.PopUpManager;
import mx.containers.Window;
var oWindowListener:Object = new Object();
oWindowListener.complete = function() {
   myLoginWindow.content.password.text = "secret";
};
var myLoginWindow:Window = Window(PopUpManager.createPopUp(this, Window, true));
myLoginWindow.title = "ログイン";
myLoginWindow.contentPath = "loginForm";
myLoginWindow.addEventListener("complete", oWindowListener);
trace(myLoginWindow.content);  // 出力: undefined

[訳者注*3] さらに、コンテンツのインスタンスにコンポーネントが配置されている場合、Window.completeイベントが発生した段階では、コンポーネントのプロパティは初期化されていない可能性があります。

たとえば、上記スクリプト001のTextFieldインスタンスをTextAreaコンポーネントに変更すると、TextArea.textプロパティは正しく設定されず、テキストが表示されません。

以下のサンプルは、Window.completeイベントのコールバック関数内ではTextAreaインスタンスにMovieClip.onLoadイベントハンドラメソッドを定義し、そのコールバック関数が呼出されたときにTextArea.textプロパティを設定しています(スクリプト002)。

スクリプト002■Window.completeイベントでTextAreaにonLoadイベントハンドラを定義して値を設定

// フレームアクション
import mx.managers.PopUpManager;
import mx.containers.Window;
var oWindowListener:Object = new Object();
oWindowListener.complete = function() {
   // myLoginWindow.content.password.text = "secret";  // テキストが設定されない
   myLoginWindow.content.password.onLoad = function() {
     this.text = "secret";
   };
};
var myLoginWindow:Window = Window(PopUpManager.createPopUp(this, Window, true));
myLoginWindow.title = "ログイン";
myLoginWindow.contentPath = "loginForm";
myLoginWindow.addEventListener("complete", oWindowListener);

Player
Flash Player 6.0r79以降。

出典
Flash MX 2004 Using Components : Window.content より邦訳。

_____

作成者: 野中文雄
作成日: 2005年5月12日


Copyright © 2001-2006 Fumio Nonaka.  All rights reserved.