2009-04-09 12 views
1

私は、曲名のリストを表示するスクリプトを持っています。ユーザーが「聞く」ボタンをクリックすると、mp3を読み込んで再生するFlash Playerにファイル名が渡されます。 SafariとIEはうまく動作しますが、Mozillaではうまく動作しません。誰もがMozillaの周りの問題を知っていて、Javascriptを使ってフラッシュに変数を渡し、フラッシュで関数を呼び出すのですか?私は私のヘッダファイルでMozilla FirefoxのJavascriptとFlash通信の問題

-

<script type="text/javascript"> 
var flash; 
    window.onload = function() { 
    if(navigator.appName.indexOf("Microsoft") != -1) { 
     flash = window.flashObject; 
    }else { 
     flash = window.document.flashObject; 
    } 
    } 

function PassFlash($preview_mp3){ 
    if(navigator.appName.indexOf("Microsoft") != -1) { 
     window.flashObject.SetVariable("fileToPlay", $preview_mp3); 
     window.flashObject.updatePlayer();  
    } 
    else { 
    window.document.flashObject.SetVariable("fileToPlay", $preview_mp3); 
    window.document.flashObject.updatePlayer(); 
    } 

その後、私はそうのようなswfファイルを埋め込む...

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" name="flashObject" width="191" height="29" align="middle" id="flashObject"> 
    <param name="allowScriptAccess" value="sameDomain" /> 
    <param name="movie" value="preview.swf" /> 
    <param name="quality" value="high" /> 
    <param name="bgcolor" value="#ffffff" /> 
    <embed src="preview.swf" quality="high" bgcolor="#ffffff" width="191" height="29" name="flashObject" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> 
</object> 

swfファイルが正常にすべてにロードされていますブラウザ(主なもの)はFirefoxで、javascriptが渡す変数や関数呼び出しを受け取っていないようです。

これに関するあなた自身の経験のヒントや話題には、事前に感謝します。

スティーブンは

答えて

3

1 swfObject

私は何swfObjectはあなたがすることができますが、あなたがでのFlashVarsをハードコードしていたかのように同じ結果で、埋め込みコードへのFlashVarsを書くことだと思う。私はハードコードさを変更しようと考えてあなたの方法での部品は、swfが既にロードされた後、実行時にflashvarsを変更しようとするのと非常に似ています。 Firefoxは、HTMLをヒットしたらswfをロードしている可能性があり、javascriptにコードを変更する機会は与えません。

また、ExternalInterface.addCallbackを読んでください。これはswfsを自分でコンパイルすると面白いかもしれません。

+0

swfobjectとExternalInterfaceは絶対に行く方法です。 – Herms

+0

私はswfobjectを使ってサイトの他のすべての領域にFlashムービーを埋め込みましたが、このインスタンスでは問題がありました。何らかの理由でswfobjectを使用したときにコードがうまく動作しませんでした。私はもう一度やり直します... – undefined

2

フラッシュとの通信にはJavaScriptを使用して、私はいつもswfObjectを使用して少なくとも難しさを持っていました。それはswfを組み込み、前後にやり取りするのを簡単にする単純なjavascriptのlibです。それはすべての主要なブラウザでも機能します。

0

swfObjectを使用してください。そのドキュメントを読んでください。私はあなたがそれを簡単に見つけることができると確信しています:)

関連する問題