- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Flash lite 1.1での質問です。)
Flash lite 1.1で外部swfファイル内の変数が参照できない問題
このQ&Aのポイント
- Flash lite 1.1での初心者の質問です。メインのswfファイルのルートに配置されているムービークリップをloadMovie関数で外部swfファイルに置き換えた後、外部swf内に定義されている変数が参照できません。外部のswfには画像データも含まれているため、loadvariables関数は使えません。
- メインのswfでのボタンアクションでgaibu.swfをロードし、ルートタイムライン上の「action」というラベルに移動します。移動後、loadMovieで読み込んだgaibu.swf内の変数msgを表示しようとしましたが、何も表示されません。loadMovie関数で外部のswfを読み込むと、読み込んだswf内で定義されている変数が参照できないようです。
- 初心者の質問ですが、Flash lite 1.1でのloadMovie関数による外部swfの読み込み後、読み込んだswf内で定義されている変数が参照できない現象が発生しています。外部のswfには画像データも含まれているため、loadvariables関数では解決できません。どなたか解決策を教えていただけないでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
以下は回答ではなく報告です。 書かれていらっしゃる通りのものを作成してみましたが, ちゃんと 「gaibu.swf」 もロードでき, その中の変数 msg の値も取得できて trace で 「this is gaibu.swf!」 も出力されましたよ。 書かれていらっしゃらない部分で,あえて妙なこともしてみました。 例えば 「gaibu.swf」 を Flash Player 5 以上用 SWF として書き出すとかです。 この場合は,変数以前に SWF 自体がロードできず, 「次のコンテンツに問題があります : SWF データが破損しています。」 などというエラーが出ますから, > (gaibu.swfは色を変えてあるので) > 読み込みは出来ていると思うのですが この状況には該当しないということになりますね。 例えば 「main.swf」 のデバイス設定で 「待ち受け画面」 を選択してムービープレビューもしてみました。 この場合は, 「FTPA004: loadMovie は無視されます。」 などというエラーが出ますから, これもご質問の状況には該当しないということになります。 つまり, 「loadMovie が失敗するため 中の変数が取り出せない。」 という状況は色々考えられますが, 「loadMovie が成功した上で 中の変数が取り出せない。」 という状況がわかりません。
お礼
> BlurFiltan様 詳細かつ丁寧なご説明ありがとうございました!! 原因が分かりましたので、ご報告させていただきます。 ソースコード部分には特に問題はありませんでしたが、「gaibu.swf」のファイルの作成の仕方(パブリッシュの仕方)に問題があったようです。 問題の「gaibu.swf」ですが、これは「gaibu.fla」という個別のFlashファイルを作成してパブリッシュしたのではなく、「main.fla」ファイルの中にシンボルを作成して、ライブラリに表示されているそのシンボルを右クリック→「Flashムービーの書き出し」を使用して作成したものでした。 どうやらこの方法で作成したswfファイルをloadMovieすると、内部の変数にアクセス出来ないようです(何故なのかはわかりませんが。。。) ですので、gaibu.flaという個別のFlashファイルを作成し、パブリッシュしたものをloadMovieすることにより、うまくいきました。 BlurFiltan様のご回答から問題の切り分けが出来ましたので、解決することが出来ました。 ありがとうございました!