无法在Mac Chrome中点击Flash内容的“允许”按钮

时间:2011-01-23 21:17:51

标签: html flash actionscript xhtml swfobject

我正在使用Mac Chrome 8.0.552.237

似乎每当我在html中嵌入flash内容并在我的flash内容请求相机访问时打开它时,我需要点击对话框中的“允许”按钮,它从不识别点击。它在Firefox中运行良好。我只是无法理解为什么它不会在chrome中工作。我使用swfobject,并使用http://www.bobbyvandersluis.com/swfobject/generator/index.html制作html代码,以确保我没有犯任何错误。

任何想法我可以做什么导致它不让我点击允许?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <script type="text/javascript" src="swfobject.js"></script>
        <script type="text/javascript">
            swfobject.registerObject("MyFlashContent", "10.1.0", "expressInstall.swf");
        </script>
    </head>
    <body>
        <div>
            <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="480" height="800" id="MyFlashContent" align="middle">
                <param name="movie" value="MyFlashContent.swf" />
                <param name="play" value="true" />
                <param name="loop" value="true" />
                <param name="quality" value="high" />
                <param name="scale" value="noscale" />
                <!--[if !IE]>-->
                <object type="application/x-shockwave-flash" data="MyFlashContent.swf" width="480" height="800" align="middle">
                    <param name="play" value="true" />
                    <param name="loop" value="true" />
                    <param name="quality" value="high" />
                    <param name="scale" value="noscale" />
                <!--<![endif]-->
                    <a href="http://www.adobe.com/go/getflashplayer">
                        <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
                    </a>
                <!--[if !IE]>-->
                </object>
                <!--<![endif]-->
            </object>
        </div>
    </body>
</html>

编辑: 由于看起来问题可能实际上是我的actionscrip代码,我会发布我如何附加相机。

var youCam:Camera = Camera.getCamera();
you_cam.attachCamera(youCam);

正如你所看到的那样我尽可能简单地附上它,我实际上在我的代码顶部有这个权利将相机放在舞台上。这在我测试它时工作正常,它在firefox中工作正常。

3 个答案:

答案 0 :(得分:2)

我不知道为什么,但由于swf画布的大尺寸,我在chrome中学到了我必须单击浏览器的调整大小角落并使窗口变小然后将其恢复到常规尺寸然后它会工作。不明白为什么,但这只是在镀铬中肆虐。我通过缩小swf的整体尺寸来解决这个问题。

答案 1 :(得分:1)

尝试将css display属性设置为'inline-block'

我有类似的问题。我使用的是swf网络摄像头插件,仅在Chrome 21上,它不允许用户点击允许。我最后通过将'css'显示'从'block'更改为'inline-block'来修复它。

希望它有所帮助。

答案 2 :(得分:0)

之前我遇到过这样的问题,但它不是浏览器,也不是嵌入,它是启用网络摄像头的示例代码(我认为这段代码甚至来自Adobe live docs ffs)。问题是在按下允许按钮之前,相机轮询已经开始。轮询(一些增强现实实验)非常繁重,允许按钮每10次左右只注册一次点击。通过放置相机轮询直到使用camera.muted == false返回状态事件之后,我解决了我的问题。

也许值得一试。干杯,EP

编辑:处理程序的代码示例

var youCam:Camera = Camera.getCamera();
youCam.addEventListener(StatusEvent.STATUS, handleCameraStatus);

...

private function handleCameraStatus(e:StatusEvent):void {
    if (e.code == "Camera.Unmuted") {
        you_cam.attachCamera(youCam);
    } else if (e.code == "Camera.Muted") {
        // display message so the user might try again.
    }
}