Кнопка «Разрешить» для содержимого Flash не может быть нажата в Mac Chrome - PullRequest
1 голос
/ 24 января 2011

Я использую Mac Chrome 8.0.552.237

Кажется, что когда я встраиваю флэш-контент в html и открываю его в chrome, когда мой флэш-контент запрашивает доступ к камере, и мне нужно нажать кнопку «Разрешить» в диалоговом окне, он никогда не распознает щелчок. Он отлично работает в 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>

EDIT: Поскольку кажется, что проблема может быть связана с моим кодом Actionscrip, я опубликую, как я подключил камеру.

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

Как вы можете видеть, я прикрепил его настолько просто, насколько это возможно, у меня на самом деле есть это в самом верху моего кода, чтобы поместить камеру на сцену. Это отлично работает, когда я тестирую его, и отлично работает в Firefox.

Ответы [ 3 ]

2 голосов
/ 22 февраля 2011

Понятия не имею, почему, но из-за большого размера холста swf я узнал в chrome, что мне пришлось щелкнуть по углу браузера с изменением размера и сделать окно маленьким, а затем вернуть его в обычный размер должно сработать. понятия не имею почему, но это происходило только в хроме. я исправил проблему, уменьшив общий размер моего SWF.

1 голос
/ 04 августа 2012

Попробуйте установить для свойства дисплея css значение inline-block

У меня была похожая проблема.Я использовал плагин веб-камеры SWF, и только в Chrome 21 он не давал пользователям возможность нажимать кнопку «Разрешить».Я закончил тем, что исправил это, изменив его css 'display' с 'block' на 'inline-block'.

Надеюсь, это поможет.

0 голосов
/ 24 января 2011

У меня раньше была такая проблема, но это был не браузер и не встраивание, это был пример кода для включения веб-камеры (я думаю, что этот код даже был взят из Adobe Live Docs FFS).Проблема заключалась в том, что опрос камеры уже начался до того, как была нажата кнопка разрешения.Опрос (некоторый эксперимент с дополненной реальностью) был настолько интенсивным, что кнопка «Разрешить» регистрировала щелчок только 1 раз в 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.
    }
}
...