• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:外部swfを読み込んだ際に内容を置き換える方法)

外部swfを読み込む方法とは?

このQ&Aのポイント
  • Flash8とWindows XPを使用して、a.swfの内容をb.swfの内容に置き換える方法を教えてください。
  • a.swfとb.swfがあり、a.swfの■のボタンを押すと、a.swfの内容がb.swfの内容に置き換わるようなものを作りたいです。
  • 自分はまずa.swfに画面いっぱいのmain_mcを作り、■のボタンを押したらmain_mc.loadMovie("b.swf");で内容を入れ替える方法を試しましたが、上手くいきません。どこを直せばいいのかわかりません。

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.1

座標や細かい点は抜きにすると, ターゲットパスが間違っているだけだと思います。 > 自分ではまずa.swfに画面いっぱいのmain_mcを作り、 > ■のボタンを押したら これを階層で図示すると次のようになります。  _root (a.swf のメインのステージ上)    └main_mc       └■ボタン ■ボタン から見て,main_mc は親に当たります。 書かれている > main_mc.loadMovie("b.swf"); これだと, ボタンと同じ階層にある main_mc に「b.swf」を読み込む ということになります。 つまり,■ボタン には兄弟分である main_mc が存在して, その兄弟分である main_mc に「b.swf」を読み込むようなスクリプトになっているのです 階層で図示すると次のようになります。  _root (a.swf のメインのステージ上)    └main_mc       ├ ■ボタン       └ main_mc          ↑↑↑        「loadMovie("b.swf")しなさい!」 ■ボタン には兄弟分である main_mc が存在していませんし, 仮に存在していたとしても, そんなところに読み込んでも,b.swf と入れ替わることはありません。 ですから入れ替えたい場合は,自分自身の階層と入れ替えるのですから ------------------------- this.loadMovie("b.swf"); ------------------------- もしくは,親とか子とかいう相対的な見方ではなく, 絶対パスで, ------------------------- _root.main_mc.loadMovie("b.swf"); ------------------------- でも良いと思います。 ====================================== 読み込むことに成功してからの話ですが, 読み込むムービークリップの基準点に,新しい SWF の左上のコーナーが来るように読み込まれます。 ですから, もし場所を同じ場所に読み込みたいのでしたら, 読み込む main_mc の基準点を左上にしておいた方が良いと思います。 「ターゲットパス」 http://homepage3.nifty.com/ginga-b/MX/targetpath.html 「インスタンスの基準点」 http://homepage3.nifty.com/ginga-b/MX/inst_refpoint.html

armstrong-us
質問者

お礼

ご回答あいがとうございます。 ターゲットパスがきちんと理解できていなかったみたいです。 勉強になりました。 お手数かけました、どうもありがとうございました。