• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:外部swfの読み込み)

外部swfの読み込み

このQ&Aのポイント
  • 外部swfを利用してフラッシュサイトのコンテンツを管理する方法について教えてください。
  • メインのflaファイル内で作成したフラッシュサイトのコンテンツを外部swfとして読み込む場合、逆再生させた後に違うコンテンツをメインのファイルに読み込むことができない問題が発生しています。
  • MX2004を使用した環境でフラッシュサイトのコンテンツを外部swfに分割する方法について教えてください。

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

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

もう解決されましたか? 補足がないようなので,こちらから簡単な例を提示します。 よろしければ参考にしてみてください。 ~条件1~ メインのメニューになっているSWFを「main.swf」として, それを貼り付けている「main.html」と,各コンテンツ「a.swf」「b.swf」「c.swf」が,サイト上,下のように同階層にあるとします。  ┬main.html  ├main.swf  ├a.swf  ├b.swf  └c.swf ~条件2~ 「main.swf」のボタンをクリックすると各コンテンツ「a.swf」~「c.swf」が,「main.swf」にそのまま乗り変わる,つまり,「main.swf」のボタンをクリックすると各コンテンツがレベル0にロードされて,「main.swf」自体は見えなくなるものとします。 ~条件3~ ボタンは各コンテンツのSWFにあり,それらのボタンをクリックすると,逆再生し,そののち,次のコンテンツがレベル0にロードされるものとします。 上の条件1~3の場合, 「main.swf」が各コンテンツをロードするボタンのスクリプトは次のようになります。 例は,「a.swf」をロードするボタンのスクリプトです。 「b.swf」や「c.swf」をロードするボタンは,それぞれ,"a.swf" の部分を変えます。 ---※1----------------------- on (release) { loadMovieNum("a.swf", 0); } ----------------------------- 各「a.swf」~「c.swf」の1フレーム目には, フラグの役割をする変数と値を定義します。 ---※2---------------------- cont_name = "0"; ----------------------------- 各「a.swf」~「c.swf」の2フレーム目には, フラグによって,読み込むSWFを変えるスクリプトを用意します。 ---※3---------------------- if (cont_name != "0") { loadMovieNum(cont_name + ".swf", 0); } ----------------------------- 各コンテンツのボタンには,次のようなスクリプトを書きます。 下の例は「a.swf」にある「b.swf」をロードするボタンです。 ---※4----------------------- on (release) { cont_name = "b"; this.onEnterFrame = function() { prevFrame(); }; } } ----------------------------- 以上です。 どれも数行で済むような至ってシンプルな例です。 流れとしては, ※1で,レベル0に「a.swf」がロードされます。 ※2で cont_name = "0"; が定義されます。 したがって,※3の if (cont_name != "0") ←もしcont_nameが"0"でない場合, ではないので,loadMovieNum(cont_name + ".swf", 0); は実行されません。 ※4で,cont_name = "b"; と定義され, onEnterFrameで毎フレーム進む時間ごとにprevFrame();で,逆再生がはじまります。 そのうちフレーム2に再び到達します。 このとき cont_name = "b"; になっているので, loadMovieNum(cont_name + ".swf", 0); が実行されます。 cont_name + ".swf" とは "b" + ".swf" つまり,「b.swf」がロードされます。 逆再生した後は,2フレームから他のムービーをロードするので,各コンテンツの1フレーム目と2フレーム目はほとんど変わらない状態の方が良いです。 また,「a.swf」などのパスは,「main.html」から見たパスになります。SWFのみをフォルダに入れる場合などは注意してください。 その他色んなケースが考えられますが,同じようなパターンで行けるとは思うのですが…

djk
質問者

お礼

お返事ありがとうございます。 補足がなかったり、返事が遅かったり、 申し訳ございませんでした。 条件3の方で多分上手くいけると思います。 また、私が使っていたスクリプトですが、 on (release) { this.onfiltered= function() { gotoAndStop(_currentframe-1);    //既出のコンテンツからフレーム逆再生 if (_currentframe == 5) {       //既出のコンテンツのモーションの最初 gotoAndPlay(31);     //違うコンテンツのモーションの最初へ飛ぶ  this.onfiltered= null; } }; } というものです。 詳しい回答ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#35109
noname#35109
回答No.1

申し訳ありませんが, 1 違うコンテンツに行く場合のボタンは,コンテンツ側にあるのか,メイン部分にあるのか。 2 コンテンツがABCの3つであった場合,A→B→Cのように決まっているのか,それともクリックによって変わるのか。 3 現在,「逆再生→違うコンテンツ」と進むときにうまく行っている方法,またはスクリプトはどうなっているのか。 以上3点をよろしければ補足説明おねがいします。 自分なりにスクリプトや方法を考えても良いですが,おそらく勝手に想像した物と作られている物に大きな格差が生じると考えられるからです。 私個人は今から,ちょっと外出しますので,おそらく回答できないと思いますが,どなたかが良い回答をくださるかもしれません。

すると、全ての回答が全文表示されます。

関連するQ&A