Flash CS3 ドキュメンテーション |
|||
| ActionScript 2.0 リファレンスガイド > ActionScript クラス > MovieClip > _lockroot (MovieClip._lockroot プロパティ) | |||
public _lockroot : Boolean
SWF ファイルがムービークリップにロードされたときに、_root で参照する内容を指定するブール値。_lockroot プロパティのデフォルト値は undefined です。このプロパティは、ロードする SWF ファイルで設定することも、ムービークリップをロードするハンドラで設定することもできます。
たとえば、ユーザーがプレイするゲームを選択したら、そのゲーム (Chess.swf など) をムービークリップ game_mc にロードする、Games.fla という名前のドキュメントがあるとします。Games.swf にロードされた後も、Chess.swf で使用されている _root がすべて、Games.swf の _root ではなく、Games.swf の _root を参照する必要があります。Chess.fla にアクセスでき、それを Flash Player 7 以降にパブリッシュする場合、メインタイムラインでこのステートメントを Chess.fla に追加できます。
this._lockroot = true;
Chess.fla にアクセスできない場合 (たとえば、Chess.swf を他の人のサイトから chess_mc にロードしている場合)、ロード時に Chess.swf の _lockroot プロパティを設定できます。次の ActionScript を lockroot.fla のメインタイムラインに配置します。
chess_mc._lockroot = true;
この例では、Games.swf が Flash Player 7 以降用にパブリッシュされていれば、Chess.swf はどのバージョンの Flash Player 用にでもパブリッシュすることができます。
loadMovie() の呼び出しでは、次のコードで示すように、ロード先のムービーで MovieClip._lockroot プロパティを true に設定します。ロード先のムービー内で _lockroot を true に設定しない場合、ロードされたムービー内の _root への参照は、ロードされたムービーの _root ではなく、ロード先の _root をポイントします。
myMovieClip._lockroot = true;
対応バージョン : ActionScript 1.0、Flash Player 7
次の例では、"lockroot.fla" の _lockroot がメインの SWF ファイルに適用されています。SWF ファイルが別の FLA ドキュメントにロードされる場合、_root は常に "lockroot.swf" のスコープを参照します。これにより、コンフリクトを回避できます。次の ActionScript を lockroot.fla のメインタイムラインに配置します。
this._lockroot = true;
_root.myVar = 1;
_root.myOtherVar = 2;
trace("from lockroot.swf");
for (i in _root) {
trace(" "+i+" -> "+_root[i]);
}
trace("");
次の情報が表示されます。
from lockroot.swf myOtherVar -> 2 myVar -> 1 _lockroot -> true $version -> WIN 7,0,19,0
次の例では、"lockroot.swf" および "nolockroot.swf" の 2 つの SWF ファイルをロードします。"lockroot.fla" ドキュメントには前の例の ActionScript が含まれています。nolockroot.fla ファイルでは、タイムラインのフレーム 1 に次のコードが追加されています。
_root.myVar = 1;
_root.myOtherVar = 2;
trace("from nolockroot.swf");
for (i in _root) {
trace(" "+i+" -> "+_root[i]);
}
trace("");
"lockroot.swf" ファイルには lockroot が適用されていますが、"nolockroot.swf" ファイルには適用されていません。ファイルがロードされた後、各ファイルがそれぞれの _root スコープから変数を出力します。次の ActionScript を FLA ドキュメントのメインタイムフレームに配置します。
this.createEmptyMovieClip("lockroot_mc", this.getNextHighestDepth());
lockroot_mc.loadMovie("lockroot.swf");
this.createEmptyMovieClip("nolockroot_mc", this.getNextHighestDepth());
nolockroot_mc.loadMovie("nolockroot.swf");
function dumpRoot() {
trace("from current SWF file");
for (i in _root) {
trace(" "+i+" -> "+_root[i]);
}
trace("");
}
dumpRoot();
次の情報が表示されます。
from current SWF file dumpRoot -> [type Function] $version -> WIN 7,0,19,0 nolockroot_mc -> _level0.nolockroot_mc lockroot_mc -> _level0.lockroot_mc from nolockroot.swf myVar -> 1 i -> lockroot_mc dumpRoot -> [type Function] $version -> WIN 7,0,19,0 nolockroot_mc -> _level0.nolockroot_mc lockroot_mc -> _level0.lockroot_mc from lockroot.swf myOtherVar -> 2 myVar -> 1
_lockroot が適用されていないファイルには、ルート SWF 内の他の変数もすべて含まれます。"nolockroot.fla" にアクセスできない場合、メインタイムラインに追加した次の ActionScript を使用して、前のメインの FLA ドキュメントの _lockroot を変更できます。
this.createEmptyMovieClip("nolockroot_mc", this.getNextHighestDepth());
nolockroot_mc._lockroot = true;
nolockroot_mc.loadMovie("nolockroot.swf");
次のように表示されます。
from current SWF file dumpRoot -> [type Function] $version -> WIN 7,0,19,0 nolockroot_mc -> _level0.nolockroot_mc lockroot_mc -> _level0.lockroot_mc from nolockroot.swf myOtherVar -> 2 myVar -> 1 from lockroot.swf myOtherVar -> 2 myVar -> 1
_root プロパティ, _lockroot (MovieClip._lockroot プロパティ), attachMovie (MovieClip.attachMovie メソッド), loadMovie (MovieClip.loadMovie メソッド), onLoadInit (MovieClipLoader.onLoadInit イベントリスナー)
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00001937.html