javascript - 尝试从 JS 访问 Flash 电影在 FF 中有效,但在 IE 中无效

标签 javascript html flash actionscript

我正在设置一个基于 Flash 的 MP3 播放器控件(WordPress Standalone Player 的独立版本)。我遇到了多个窗口都打开的情况。一个窗口打开另一个窗口,因此我有可用的 window.opener 属性。

当子窗口打开时,我想以编程方式将父窗口中的音频播放器静音。

这适用于 Firefox,但不适用于 IE 7 和 8。我对 Flash/Javascript 交互知之甚少,并且陷入困境。我没有收到任何错误消息。

为此,播放器 SWF 对象具有 setVolume() 和 close() 函数。这些函数没有在 Javascript 中的任何地方定义,所以我猜这些函数是由 Flash 对象提供的。我在 Flash source code 中找到的以下几行支持了这一点玩家的:

if (ExternalInterface.available) {
 ExternalInterface.addCallback("load", Application, Application.ei_loadFile);
 ExternalInterface.addCallback("close", Application, Application.ei_closePlayer);
 ExternalInterface.addCallback("open", Application, Application.ei_openPlayer);
 ExternalInterface.addCallback("setVolume", Application, Application.ei_setVolume);    

在 Firefox 中,这有效:

if (typeof(AudioPlayer) != "undefined") 
var player = AudioPlayer.getPlayer("audioplayer_1");  // This shows up as 
                                                      // the player SWF object 
                                                      // in Firebug

if (player)
 if (typeof(player.setVolume) == "function")
  player.close();  // This works in FF but not in IE

但在 IE 中则不然。这是因为IE中没有回调吗?或者还有什么我需要额外做的吗?

最佳答案

如果它在 FF 中有效但在 IE 中无效,则问题可能出在 JavaScript 代码中。 ExternalInterface 非常可靠(我遇到的 99% 的失败都是 JavaScript 问题造成的,而不是 ActionScript 问题)。 IE 是否支持 window.opener?您是否在没有 Flash 内容的页面中测试过 JavaScript 以确保代码有效?

编辑:我如何将其作为评论而不是答案发布?

编辑编辑:nvm,我还不够酷,无法发表评论。

关于javascript - 尝试从 JS 访问 Flash 电影在 FF 中有效,但在 IE 中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1977254/

相关文章:

apache - myPage.com 而不是 mypage.com/WebContent

javascript: 点击 table1 列幻灯片显示 table2 列

javascript - 这是怎么做到的。 JavaScript?

javascript - 如何在文本区域中创建列表?

linux - 有没有办法可以将我的 USB 闪存驱动器或其他存储设备用作运行 R 或其他编程任务的 RAM?

flash - 字节数组到字符串

ruby-on-rails - 闪光[:notice] is shown on browser back again

javascript - 通过另一个下拉菜单过滤下拉菜单

javascript - 范围从 到 包含键和值的数组

javascript - 如何创建 Vue 3 自定义元素,包括子组件样式?