• ベストアンサー

外部swfが作動しない

FLASH8を使用してHPを作成しています。 index.flaの中の各ボタンに ---------------------------------------- on (release) { _root.space.loadMovie("a.swf"); } ---------------------------------------- このように指示したのですが、a.swfの中のボタンが作動しなかったり、txtファイルが読み込めなかったりします。 他のスクロールボタンは作動するのですが、何か設定がおかしいのでしょうか? 初心者なので、補足が必要ならばすぐお答えします。 よろしくお願いします。

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

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

ご質問内容に関して 情報不足で,全てわかるわけではありません。 #1の方の補足に関する部分, つまり,ご質問でいうところの, > txtファイルが読み込めなかったりします。 この部分について回答します。 #1の方の補足で書かれているスクリプトの最初の行↓。 System.useCodepage = true; この上の行,つまり1行目に 次の1行(コメント行も加えると2行)をコピペで貼り付けてください。 ------------------------------------ // _root の階層を この階層にロックする this._lockroot = true; ------------------------------------ これを書くとちゃんと表示するのではないかと思います。 Fashドキュメンテーション 「_lockroot (MovieClip._lockroot プロパティ)」 http://livedocs.macromedia.com/flash/8_jp/main/00002482.html 書かれているスクリプトの myLV.onLoad の中で, _root.news = myLV.news_txt; と書かれていますが, この _root.news の _root は, 「a.swf」 が単独で再生される場合は,「a.swf」 の _root になります。 しかし, 「index.swf」 に 「a.swf」 が読みこまれたとたん, 「index.swf」 の中で 「a.swf」 は単なるムービークリップ space の扱いになります。 ムービークリップspace の _root は 「index.swf」 の _root です。 「index.swf」 の _root に news という変数名のテキストフィールドがあれば, ちゃんと表示されるはずですが, 「index.swf」 の _root に news という変数名のテキストフィールドなどはなく, 「a.swf」 の _root に news という変数名のテキストフィールドがあるので, 表示されないわけです。 this._lockroot = true; を書いておくと, 「a.swf」 内の _root は 「a.swf」 に ロックされますから, news という変数名のテキストフィールドに無事読みこまれた物が表示されると思います。 以上は, 他に原因がなければの話ですよ。 ダブルに読みこむのは難しいです。 単独のFlash だけでも階層がややこしいのに, さらに _root の処理や, 外部ファイルどうしのファイル階層構造が絡んできます。 「a.swf」内のボタンがうまく動作しない件に関しましてはわかりませんが, ひょっとしたら 上記 this._lockroot = true; で同時解決するかもしれません。

pocomami
質問者

お礼

回答ありがとうございます。 this._lockroot = true;を一行目にたしたところ、作動しました。 ボタンの方がまだ解決してませんが。。。 複雑な階層に問題があるようですね。

その他の回答 (1)

  • suzuko
  • ベストアンサー率38% (1112/2922)
回答No.1

>txtファイルが読み込めなかったりします ???このスクリプトはa.swfをspaceというインスタンスに読み込むだけのもですよね。

pocomami
質問者

補足

補足要求ありがとうございます。 補足をさせていただきます。 a.swfの中で ----------------------------------- System.useCodepage = true; myLV = new LoadVars(); myLV.onLoad = function(success) { _root.news = myLV.news_txt; }; myLV.load("news.txt"); stop(); ----------------------------------- のようにnews_txtを読み込もうとしてるのですが、 index.flaの中で読み込みと news.txtで表示したいところに 『_level0.space.news』と表示されるのです。

関連するQ&A

専門家に質問してみよう