FirefoxでExternalInterfaceを動作させるのに苦労しています。私はJavaScriptからAS3関数を呼び出そうとしています。 SWFは正しいコールバックでセットアップされ、IEで動作しています。FirefoxでのFlash外部インターフェイスの問題
私はAC_RunActiveContent.jsを使用してswfを自分のページに埋め込みます。しかし、オブジェクト/埋め込みタグにIDを追加するように変更しました。以下はIEとFirefox用に生成されるobjectタグとembedタグです。
<object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="400" height="400" align="middle" id="jpeg_encoder2" name="jpeg_encoder3" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" >
<param name="movie" value="/jpeg_encoder/jpeg_encoder3.swf" />
<param name="quality" value="high" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="scale" value="showall" />
<param name="wmode" value="window" />
<param name="devicefont" value="false" />
<param name="bgcolor" value="#ffffff" />
<param name="menu" value="false" />
<param name="allowFullScreen" value="false" />
<param name="allowScriptAccess" value="always" />
</object>
<embed
width="400"
height="400"
src="/jpeg_encoder/jpeg_encoder3.swf"
quality="high"
pluginspage="http://www.macromedia.com/go/getflashplayer"
align="middle"
play="true"
loop="true"
scale="showall"
wmode="window"
devicefont="false"
id="jpeg_encoder2"
bgcolor="#ffffff"
name="jpeg_encoder3"
menu="false"
allowFullScreen="false"
allowScriptAccess="always"
type="application/x-shockwave-flash" >
</embed>
私は、Firefoxで
<script>
try {
document.getElementById('jpeg_encoder2').processImage(z);
} catch (e) { alert(e.message); }
</script>
...このように関数を呼び出しています、私はすべてのアイデア "document.getElementById("jpeg_encoder2").processImage is not a function
"
を言ってエラーが出ますか?
をたぶん、あなたはすぐにprocessImage関数を呼び出しています。 SWFファイルがロードされていることを確認します。 OBJECT/EMBED要素をドキュメントツリーに挿入した後、ブラウザはSWFファイルを要求する時間が必要です。そうでない場合は、さらにコードを入力してください。 – Rafael
関数はonLoadと呼ばれることはありません...後でユーザーのやり取りに基づいて発生します。私はすべてが完全にロードされたことを確認しましたが、同じ問題がまだあります。 – majestiq
SWFファイルでコード(EMBEDタグ)をテストしただけです。それはうまくいった。 FirefoxとIEのFlash Playerのバージョンを確認してください。 getElementByIdが正しい要素を返すかどうかを確認します。この問題を引き起こす可能性のある他のアイデアはありません。 – Rafael