こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

外部から読み込まれたSWFによるfscommandの使用

お世話になります。
早速ですが、質問です。
WindowsXP SP2+Flash MX2004Pro+IE6の環境で作業しています。
SWFからHTML上のJavaScriptの関数を呼ぶという処理があるのですが、getURLにてこの処理を実装すると、同じHTML上のアニメーションGIFがアニメーションを停止してしまいます。
そこでIEの場合はfscommandで、と思ったのですが、SWF自体を外部JavaScriptにて読み込んだ場合に、VBScriptのサブルーチン(ムービー名_FSCommand)を呼んでくれないようで(無反応です)、困っております。
しかしながらSWFをクリックしないとアクティブにならないというのは避けたいので、SWFを外部JavaScriptから読みこむ事も止められず、という状況です。

何か良い対策などありましたらご教授いただければ幸いです。

投稿日時 - 2007-03-02 08:32:37

QNo.2795772

すぐに回答ほしいです

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

基本的な処理経過は

1. html読み込み
2. html読み込みと完了とともにvbscriptが指定idにfscommand割り当て

だと思われます

質問者さんの場合は onload で最後の最後にswfソースを出力しているので

1. html読み込み
2. html読み込みと完了とともにvbscriptが指定idにfscommand割り当て
3. 全てが終ったので onload でjs実行(swf書き出し)

のような順序になってしまい、2の時点で指定idが見つからない為
割り当てがされず、実行できない状況にあるのでしょう

なのでhtml読み込み完了前にソースを出力するように変更が必要かと思います


onload のfunction内に記述しているjsを、
<div id="swfContainer" style="略"></div>~</body>の間(~部分)に記述するか、

document.getElementById("swfContainer").innerHTML = wk;

の行を

document.write(wk);

として
<div id="swfContainer" style="略">~</div>の中に記述すると解決すると思われます

そのまま記述でも外部もしくはhead内でユーザ関数としてまとめて
前途部分でそれを実行でもどちらでもよいです
(今回の場合はswfのクリック不必要化なので外部になると思われますが)

とりあえず要は onload 内ではなくhtml読み込み中に書き出せばOKということです


一応document.writeの例としては

function swfWrite(){
var wk = "";
~ 中略 ~
//alert(wk);
document.write(wk);
}

とjs側でユーザ関数を作り、html側は

<div id="swfContainer" style="border:1px solid gray;">
<script type="text/javascript">
<!--
swfWrite();
// -->
</script>
</div>

のような感じになります

投稿日時 - 2007-03-02 13:45:06

お礼

お世話になります。
ご指摘いただいたとおり、SWFの配置のタイミングをwindow(body).onloadからbody部の終了部に変更したところ、正常にfscommandが動作しました。
ありがとうございました。

投稿日時 - 2007-03-02 14:35:52

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

OS及びブラウザを同環境で試してみましたが、
書き出しに外部jsを使用してもvbsはきちんと反応しました

おそらく外部jsでhtmlソースを書き出す際に、
成功している"直でのソース"と相違があるのではないでしょうか

考えられる可能性としては、外部jsでの書き出しソース<object><embed>のidやnameに
vbsで記述したfscommandに使用しているムービー名がきちんと書き出されていないというところです

外部jsの書き出しが

<object ~ id="vbsが指すムービー名">
もしくは
<object ~ name="vbsが指すムービー名">

のようになっているでしょうか(embed書き出しならそちらが)

他も含め、前途"直でのソース"と一致しているかもう一度よくご確認下さい

投稿日時 - 2007-03-02 09:38:23

補足

ご回答ありがとうございます。
再度ソース内容を確認してみたのですが、ご指摘いただいた不具合箇所を発見できず、困っております。

因みに下記が当方で作成したテストページのURLです。
http://www.mars.dti.ne.jp/~misshiki/fsctest/test.html

お手数ですが不正な箇所がございましたら、ご指摘いただければ幸いです。

投稿日時 - 2007-03-02 11:12:09

あなたにオススメの質問