- 締切済み
Flashで別swfの読み込み
FLASHでwebサイトを作っています メインのswfファイル上にステージを配置し、そこにtextファイルを読み込む別swfを読み込ませたいのですが、上手く表示されません。 textファイルを読み込むswfは単体でプレビューすると表示されるんですが、メインswfからその別swfを読み込ませようとすると表示されません 他の別swfはきちんと読み込まされます どうかアドバイスお願いします
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- BlurFiltan
- ベストアンサー率91% (1611/1754)
7~8割くらいの確率で, 問題があるのはターゲットパスでしょう。 http://www.google.co.jp/search?hl=ja&q=%E3%82%BF%E3%83%BC%E3%82%B2%E3%83%83%E3%83%88%E3%83%91%E3%82%B9 残り2~3割くらいの確率で, 問題があるのはファイルパスだと思います。 どっちにしてもパスです。 外部SWFをロードする場合, たいていは,MovieClip.loadMovie もしくは MovieClipLoader.loadClip によって, ムービークリップにSWFを読み込みます。 ムービークリップに読み込まれた 子SWF は 親SWF から見れば単なるムービークリップです。 また 子SWF のスクリプトは 親SWF 内で動作するので, パスは全て 親SWF からみたパスになります。 例えば, 絶対パスで 子SWF の _root に外部textファイルを読み込むようにしていたとします。 子SWF 単体で見れば, _root は自分自身のメイン階層のタイムラインを指しますが, 親SWF 中で動作させる場合,この _root は 親SWF の _root を意味してしまいます。 ここでターゲットパスにズレが生じます。 対処方法は, 子SWF 内で,_root を含む絶対パスを使用しないようにするということです。 つまり全て this.○○… のような相対パスを使うことです。 これが最も一般的な対処法です。 どうしても 子SWF 内で絶対パスを使用したい場合は, Flash MX 2004 以上(Flash Player 7 以上)に限って,_lockroot プロパティが使用できますからこれを使います。 子SWF のフレーム1の最初の行に, this._lockroot = true; と書くと _root は, そのファイル(読み込まれた場合はムービークリップ扱い)内で, _root が ロック されますから,階層の構造変化がなくなると思います。 Flash 8 ドキュメンテーション _lockroot (MovieClip._lockroot プロパティ) http://livedocs.adobe.com/flash/8_jp/main/00002482.html ファイルパスの問題ですが, Flash のロードは SWF からのパスではなく, SWF が表示されている HTML からのパスになります。 さらに, 親SWF に 子SWF をロードする場合, 子SWF にロードするテキストファイルのパスは, 親SWF が表示されている HTML からのパスを書かなければなりません。 この点に注意してください。 なお, 親SWF と 子SWF が別サイト(別ドメイン)にある場合は論外です。 こちらは, 「Flash クロスドメインセキュリティ」 などをネットで検索してみてください。
お礼
BlurFiltanさん ありがとうございました ファイルパスだったんですね。。。なんとかできましたありがとうございました^^