Flash和Firefox:无法在“隐私”面板上单击“允许”

时间:2010-11-09 06:57:29

标签: flex flash firefox flex4

我使用Flex Builder 4创建了一个相当简单的Flex应用程序,它连接到用户PC上的网络摄像头。为此,Flash向用户展示了臭名昭着的隐私警告。

现在,问题是用户无法点击面板,因为它似乎对任何用户交互都没有响应。

更多细节:

  • Mac / OSX上的Firefox 3.6.12,Snow Leopard。
  • Adob​​e Flash插件10.1.85.3 / 10.1 r85
  • Flex应用程序在其自己的窗口/选项卡中运行良好,但只要带有Flex应用程序的html页面嵌入到另一个页面的iframe中,就会出现问题。
  • 如果我在连接相机之前人为地放置了一个警告框,则用户可以与Flex应用程序进行交互,但只要显示“隐私”面板,Flex应用就会停止交互。
  • 该应用在Chrome和Safari下运行良好,但我还没有在Windows下尝试过。
  • 我读过CSS定位存在问题所以我删除了任何影响Flex应用程序的CSS样式。

在我改变策略并摆脱iframe(这将花费我一些努力)之前,我很高兴知道其他人是否遇到过同样的问题以及是否有解决方法。

感谢。

2 个答案:

答案 0 :(得分:1)

我几周来一直有同样的问题。我发现可能是什么问题。它与css对齐有关。尝试删除div flash中的 text-align:center; ,它将再次运行。不知何故,安全面板的活动区域不随显示图像移动......

答案 1 :(得分:0)

在我的应用程序中,这个问题显然是由包含具有css margin: 0 auto的flash的元素引起的。这导致flash对象的左边缘有时被报告为小数,例如, $('.flash').position().left --> 450.5px。只要它不是一个整数,安全面板就无法对点击做出反应。

https://bugs.adobe.com/jira/browse/FP-4183中描述的修复程序与Christiano 链接的修补程序几乎有效。但是,每当浏览器调整大小以至于左边距消失时,它就会失败。

以下是解决这个问题的原因:

function registerMozillaFlashFix() {
 if ($.browser.mozilla) {
   $(window).resize(function() {
      $(".flash").each(function(ii, e) {
        var $e = $(e);
        $e.css('margin-left', $e.position().left % 1 === 0 ? '0' : '0.5px');
      });
   });
 }
}

然后在设置完闪存后立即致电window.resize()