AS3外部接口不调用,回调不起作用

时间:2013-07-19 08:41:43

标签: actionscript-3 flash callback call externalinterface

我尝试检查用户是否有带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;
            }

        }
    }

}

有人看到我的错误? 为什么这不起作用?

THX。

1 个答案:

答案 0 :(得分:2)

这不起作用,因为我在本地尝试。

我已经在ftp中上传了我的代码,这很好。

感谢所有回复。