
ActionScript 2.0 の [loadMovie] コマンドを使用すると、外部の SWF ファイルや画像を MovieClip や 、またはほかのレベル(level number)に読み込むことができます。
[loadMovie] には以下のように2 つの異なる形式があります。
[MovieClip.loadMovie]
ムービークリップのインスタンスに外部コンテンツを読み込む場合は、[MovieClip] の [loadMovie] メソッドを使用することを推奨します。このメソッドは読み込み元のムービークリップから直接呼び出され、コンテンツの URL を送信します。
myContainer.loadMovie("myExternalMovie.swf");
読みこまれるコンテンツの URL には絶対パスと相対パスのいずれも使用することができます。読み込みの際、コンテンツはあらかじめ指定されたムービークリップのコンテナの範囲内に表示されます。
その際、他の一般的なプロパティと同様に、ムービークリップの位置はそのまま維持されますが、ムービークリップの内部で定義されているカスタムプロパティや関数が、新しいコンテンツに置き換えられることによって機能しなくなります。
([onRelease] のようなコードとイベントハンドラも含まれます。)そのため、読みこまれるムービークリップに対して [onLoad] のイベントハンドラを使用しても動作しません。
この現象は、[MovieClipLoader] クラスを使用することによって回避することができます。
[MovieClip.loadMovie] の詳細については、Flash ヘルプを参照してください。
[loadMovie]/[loadMovieNum]
[loadMovie] コマンドは、グローバル関数としても使用することができます。
この関数では、外部コンテンツと読み込み元のコンテンツの URL という 2 つのパラメータが必要です。
読み込み元のパラメータは文字列と参照値のいずれかで指定します。
以下はどちらも「インスタンス名」を「myContainer」 と指定しているムービークリップに、「myExternalMovie.swf」という SWF ファイルを読み込むコードになります。
loadMovie("myExternalMovie.swf", myContainer);
loadMovie("myExternalMovie.swf", "myContainer");
[loadMovie] のメソッドを使用することで、Flash Player の異なった階層にコンテンツを読み込むことが可能です。
Flash Player の階層とはプレイヤーにおけるレイヤーのようなもので、異なる複数のムービーを配置することができます。
階層ごとに異なる root が参照されるため、他の階層にあるムービーから独立した状態で [_lockroot] を使用せずに再生することができます。
レイヤー番号に続く [_level] の番号を使用して ActionScript 内の階層を参照することができます。
[level 0] または [_level0] のムービーが最初に Flash Player に読みこまれます。
階層はさらにその上に追加することができます。
以下の loadMovie への呼び出しは「myExternalMovie.swf」ファイルを、Player で再生中のムービーの上にある level 1 に読み込みます。
loadMovie("myExternalMovie.swf", "_level1");
[loadMovie] 機能の変化形で、グローバル関数を使用したものが [loadMovieNum] です。
これは [loadMovie] と似ていますが、[loadMovieNum] ではレベルをターゲットに設定します。
さらに、ターゲットの設定は、レベルの名前ではなく数字の部分を使用します。例えば、外部 SWF を [_level 1] に読み込むには、以下のコードを使用します。
loadMovieNum("myExternalMovie.swf", 1);
[_lockroot] を使用して [_root] の競合を防止します
[_root] は常に階層の最上位のタイムラインを参照するため、外部ムービーを他のムービークリップ内に読み込む場合、読み込まれたムービークリップが参照する [_root] が変更されます。
読みこまれるムービークリップのタイムラインで [_lockroot] プロパティを true に設定することによって、この動作によるトラブルを回避することができます。この設定によって、読み込み側のムービーの [_root] を参照せずに、ムービー自身の [_root] を参照できるようになります。
// in the main timeline of the movie to be loaded this._lockroot = true;
注意 : [_lockroot] プロパティは、Flash Player 7 以降にパブリッシュする場合のみに有効です。
Adobeサポート




