- 締切済み
loadMovie()を組み込んだswfファイルをさらに別のswfファイルで読み込みたい。
ActionScript初心者です。よろしくお願いいたします。 掲題の通りなのですが、外部のjpgファイルをloadMovieで読み込むswfファイルを、さらに別のswfファイルで読み込みしようとすると、jpgが表示されずに困っています。具体的には以下の通りです。 (1)jpgファイルを読み込むswfファイルについて ・ファイル名:「sub_screen.swf」 ・ムービークリップシンボル(インスタンス名"PHOTO_STAGE")に外部のjpgファイルを読み込ませるために、ボタンに以下のスクリプトを記述 "on(release){loadMovie("photo1.jpg",_root.PHOTO_STAGE);}" ・「sub_screen.swf」及び「photo1.jpg」は同一フォルダに保存 (2)sub_screen.swfを読み込むswfファイル ・ファイル名:「main_screen.swf」 ・ムービークリップシンボル(インスタンス名"STAGE")に「sub_screen.swf」を読み込ませるべく、ボタンに以下のスクリプトを記述 "on(release){loadMovie("sub_screen.swf",_root.STAGE);}" ・「main_screen.swf」、「sub_screen.swf」及び「photo1.jpg」は同一フォルダに保存 以上のような条件で「main_screen.swfファイル」を実行すると、jpgファイルだけが表示されません。(sub_screen.swfのボタン等は表示されます。)2重にloadMovieを実行することは不可能なのでしょうか? ご協力をお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- BlurFiltan
- ベストアンサー率91% (1611/1754)
まず, on(release){loadMovie("sub_screen.swf",_root.STAGE);} これで _root にある STAGE というインスタンス名のムービークリップに sub_screen.swf がロードされます。 この時点で sub_screen.swf はムービークリップ STAGE 扱いになります。 _root(main_screen.swf の _root) └ STAGE ←これが sub_screen.swf 次に, on(release){loadMovie("photo1.jpg",_root.PHOTO_STAGE);} これで _root にある PHOTO_STAGE というインスタンス名のムービークリップに photo1.jpg がロードされます。 _root(main_screen.swf の _root) ├ STAGE ←これが sub_screen.swf └ PHOTO_STAGE ←ここに photo1.jpg がロードされる つまり, main_screen.swf の _root の直下に PHOTO_STAGE というインスタンス名のムービークリップがあれば, そこに photo1.jpg がロードされます。 言い換えると, main_screen.swf の _root の直下に PHOTO_STAGE というインスタンス名のムービークリップがなければ, そこには photo1.jpg がロードされません。 もし main_screen.swf の _root の直下にある PHOTO_STAGE というインスタンス名のムービークリップに JPEG をロードするのではなく, sub_screen.swf の _root の直下にある PHOTO_STAGE というインスタンス名のムービークリップに JPEG をロードするのでしたら, sub_screen.swf にあるボタンのスクリプトを on(release){loadMovie("photo1.jpg",this.PHOTO_STAGE);} とすべきです。 または, _root を是非とも使いたいという場合でしたら, sub_screen.swf の _root の フレーム1 の最初辺りに, // この階層で _root を ロック する this._lockroot = true; と書きます。 すると sub_screen.swf の _root で _root がロックされますから, main_screen.swf の _root の PHOTO_STAGE というインスタンス名のムービークリップ には photo1.jpg がロードされなくなります。 つまり, sub_screen.swf の _root の PHOTO_STAGE というインスタンス名のムービークリップ には photo1.jpg がロードされるようになります。 ただし, this._lockroot = true; が使えるのは Flash MX 2004(通し番号 Flash 7)以降で, FlashPlayer7 以降,もしくは Flash Lite 2.0 以降用の SWF をパブリッシュする場合に限ります。 Flashドキュメンテーション ActionScript 2.0 リファレンスガイド _lockroot (MovieClip._lockroot プロパティ) http://livedocs.adobe.com/flash/8_jp/main/00002482.html
お礼
すぐにお返事が出来なくて、申し訳ありません。改めて、回答ありがとうございます。 _rootとthisの関係をいまいち理解していなかったのが原因なんですね。おかげさまで 解決しました。