Внешний интерфейс AS3 не звонит, а обратный вызов не работает

Я пытаюсь проверить, есть ли у пользователя камера с файлом swf.

Но вызов внешнего интерфейса не выполняется, а обратный вызов говорит об ошибке:

Uncaught TypeError: Object #<HTMLObjectElement> has no method 'checkWebcam'

это мой html файл:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8"/>
    <title>webcamDetector</title>
    <meta name="description" content="" />

    <script src="js/swfobject.js"></script>
    <script>
        var flashvars = {
        };
        var params = {
            menu: "false",
            scale: "noScale",
            allowFullscreen: "true",
            allowScriptAccess: "always",
            bgcolor: "",
            wmode: "direct" // can cause issues with FP settings & webcam
        };
        var attributes = {
            id:"webcamDetector"
        };
        swfobject.embedSWF(
            "webcamDetector.swf", 
            "altContent", "1", "1", "10.0.0", 
            "expressInstall.swf", 
            flashvars, params, attributes);


            function alllert(test){
                console.log(test);
            }
    </script>
    <style>
        html, body { height:100%; overflow:hidden; }
        body { margin:0; }
    </style>
</head>
<body>
    <div id="altContent">
        <h1>webcamDetector</h1>
        <p><a href="http://www.adobe.com/go/getflashplayer">Get Adobe Flash player</a></p>
    </div>

        <div onclick="alert(document.getElementById('webcamDetector').checkWebcam());">test</div>

</body>
</html>

А это мой основной файл as3:

package 
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.external.*;
    import flash.media.Camera;

    /**
     * ...
     * @author 
     */
    public class Main extends Sprite 
    {

        public function Main():void 
        {
            ExternalInterface.call("alllert", "tedsf dfds fsd f");

            ExternalInterface.addCallback("webcam",checkWebcam);
            ExternalInterface.addCallback("checkWebcam", checkWebcam);
        }

        public function checkWebcam():int {

            if (Camera.isSupported) {

                var webcam:Array = Camera.names;

                if (webcam.length > 0) {
                    return 58;
                }else {
                    return 59;
                }

            }else {
                return 60;
            }

        }
    }

}

Кто-нибудь видит мою ошибку? Почему это не работает?

Спасибо.


person Paul T.    schedule 19.07.2013    source источник
comment
Вызов alllert работает правильно?   -  person Harold    schedule 19.07.2013
comment
проверьте это: 'ССЫЛКА', уделите больше внимания методу js getMovie().   -  person Alex    schedule 19.07.2013


Ответы (1)


Это не работает, потому что я пробую это локально.

Я загрузил свой код на ftp, и он отлично работает.

Спасибо за все ответы.

person Paul T.    schedule 21.07.2013