- ベストアンサー
swfファイルがループ再生されてしまう問題の解決方法
- swfファイルを外部.jsファイルから読み込む際に、ループ再生される問題が発生しています。
- swfファイルには最後のフレームにstop()を設定していますが、繰り返し再生されてしまいます。
- この問題を解決するためには、swfファイルにループ再生を停止するためのコードを追加する必要があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
stop(); が _root のタイムラインの最終フレームにちゃんと書いてあれば, タグに loop = false などなくても,最終フレームでストップします。 まず,その点の確認が必要です。 ムービープレビューを使うか,SWFファイルを直接開いてみて, 最終フレームでストップするかどうかの確認です。 ムービープレビューを使うか,SWFファイルを直接開いてみて, ストップしなければ Flashファイル(SWF) の作り方が悪いのです。 ちなみに, _root のタイムラインの最終フレームに stop(); を入れて, 書かれている JS と タグ で, 「index.swf」 を表示させてみましたが, ちゃんとストップしましたよ。 ただしわざと, _root のタイムラインの最終フレームに stop(); を入れなければ, ループしてしまいました。 その場合,ムービーの制御は object タグがします。 その, _root のタイムラインの最終フレームに stop(); を入れない状態で, 「index.swf」 を作成し, html+="<param name = loop value=false>" の一行を,外部 JS に加え,その「index.swf」 を表示させると, ループせずにちゃんと止まりました。 入れる場所は,objectタグ内ですから, この行と↓ html+="<param name = movie value='index.swf'>" この行↓の間 html+="<param name = quality value=high>" つまり,こんな具合↓にすると止まります。 html+="<param name = movie value='index.swf'>" html+="<param name = loop value=false>" html+="<param name = quality value=high>" しかし, 止まるには止まりますが, 最初に書いたように,Flash の方が大変怪しいです。 タグやJSの前に,Flash をちゃんと止めることを優先させた方が良いと思います。 例えば(例えばです), _root.onEnterFrame = function() { play(); }; なんて,どこかのフレームに書いてあれば, stop(); なんかでFlashは止まりません。 当然タグでも止まりません。 もしムービープレビューを使うか,SWFファイルを直接開いてみて, stop(); で止まらないとするなら,その問題解決の方がやはり先です。 「Flashの制御はFlash単独で制御」 これが基本です。 何よりも先に stop(); が,できたとして, こちらの回答も参考にしてみてください↓。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2213812 ↑教えて!goo ↓OKWave (同じです) http://okwave.jp/kotaeru.php3?q=2213812 #3 の方が Studio8 を持たれていた場合の回答をされていますし, #2(私)が,その AllAbout の JS は意味がわかりにくいし, 使い勝手が悪いという理由で, 最後にもっと良い JS のサイトを紹介しています。
お礼
ごめんなさい。 ご回答いただいた文章を読んでいくうちに自分の単純な勘違いに気づかされてしまいました。やはりおっしゃられてるとおり最後のフレームにstop();がついてませんでした。自分ではてっきりついてると思い込んでました。無事、解決できました。親切丁寧な説明をありがとうございました。