電子書籍の厳選無料作品が豊富!

どなたか教えてください。
IE対応のhttp://allabout.co.jp/internet/javascript/closeu …
swfを外部.js(index.js)から読み込むことに挑戦しています。

index.htmlには
<script language='JavaScript' src='index.js'></script>

index.jsには
html = ""
html+="<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000'"
html+=" codebase='https://fpdownload.macromedia.com/pub/shockwave/"
html+="cabs/flash/swflash.cab#version=7,0,0,0'"
html+=" width = 800 "
html+=" height = 430 >"
html+="<param name = movie value='index.swf'>"
html+="<param name = quality value=high>"
html+="<embed src = 'index.swf' "
html+=" loop = false "
html+=" quality = high "
html+=" width = 800"
html+=" height = 430"
html+=" type = 'application/x-shockwave-flash' "
html+=" pluginspage='https://www.macromedia.com/go/getflashplayer'>"
html+="</embed>"
html+="</object>"
document.write(html)

と書いて(全て同じ階層です)みごと表示はされたんですが
swfファイルが何度も繰り返し再生されるんです。
swfファイル自体には最後のフレームにstop()をつけてます。
繰り返しをやめたいのですが
どなたか分かる方、宜しくおねがいします。

A 回答 (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 のサイトを紹介しています。
    • good
    • 0
この回答へのお礼

ごめんなさい。
ご回答いただいた文章を読んでいくうちに自分の単純な勘違いに気づかされてしまいました。やはりおっしゃられてるとおり最後のフレームにstop();がついてませんでした。自分ではてっきりついてると思い込んでました。無事、解決できました。親切丁寧な説明をありがとうございました。

お礼日時:2006/06/19 09:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!