Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试从JS访问Flash电影在FF中有效,但在IE中无效_Javascript_Html_Flash_Actionscript - Fatal编程技术网

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

Javascript 尝试从JS访问Flash电影在FF中有效,但在IE中无效,javascript,html,flash,actionscript,Javascript,Html,Flash,Actionscript,我正在设置一个基于Flash的MP3播放器控件(的独立版本)。我有一个多窗口播放器打开的情况。一个窗口打开另一个窗口,因此我有可用的window.opener属性 当打开子窗口时,我希望以编程方式使父窗口中的音频播放器静音 这在Firefox中有效,但在IE7和IE8中无效。我对Flash/Javascript交互知之甚少,我被卡住了。我没有收到任何错误消息 为此,player SWF对象有一个setVolume()和close()函数。这些函数在Javascript中没有定义,所以我猜它们是由

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

当打开子窗口时,我希望以编程方式使父窗口中的音频播放器静音

这在Firefox中有效,但在IE7和IE8中无效。我对Flash/Javascript交互知之甚少,我被卡住了。我没有收到任何错误消息

为此,player SWF对象有一个setVolume()和close()函数。这些函数在Javascript中没有定义,所以我猜它们是由Flash对象提供的。我在播放器的下面几行代码中找到了这一点:

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,我还没有冷静到可以发表评论。

玩家在IE中有价值吗?为什么要测试setVolume,然后调用close?在您的代码中粘贴一些警报并报告。可以,已经在上面了-------好了,伙计们,这实际上是,而且奇怪的是,我的功能测试。(setVolume和close之间的差异是一个意外,与此无关。)我测试了我的
mutePlayer()
函数的可用性,如下所示:
if(typeof window.opener.mutePlayer==“function”)
这在IE中不起作用,我不知道为什么。可能是因为函数组织在
窗口
对象的下面。如果我删除该检查,我可以调用该函数,并且一切正常。谢谢你的时间。干杯,检查我的评论上面是什么。