我有一个显示歌曲名称列表的脚本,当用户单击“收听”按钮时,文件名将传递给加载和播放 mp3 的 Flash 播放器。这适用于 Safari 和 IE,但不适用于 Mozilla。有谁知道关于 Mozilla 和使用 Javascript 将变量传递给 flash 并在 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 传递的变量或函数调用。
非常感谢您提供的任何提示或您自己在这方面的经历。
斯蒂芬
最佳答案
+1 瑞士法郎对象
我认为 swfObject 允许您做的是将 Flashvars 写入嵌入代码,结果与硬编码 flashvars 相同。我认为尝试以您的方式更改硬编码部分将非常相似在 swf 已经加载后尝试在运行时更改 flashvars。 Firefox 很可能会在遇到 html 时加载 swf,而不给 javascript 更改代码的机会。
另外,请继续阅读 ExternalInterface.addCallback ,如果您自己编译 swf,那可能会很酷。
关于javascript - Javascript 和 Flash 通信的 Mozilla Firefox 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/734262/