【问题标题】:AS3 External interface doesn't call and callback doesn't workAS3 外部接口不调用和回调不工作
【发布时间】:2013-07-19 08:41:42
【问题描述】:

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

        }
    }

}

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

谢谢。

【问题讨论】:

  • alllert 调用功能是否正确?
  • 看看这个:'LINK',多注意js getMovie()方法。

标签: actionscript-3 flash callback call externalinterface


【解决方案1】:

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

我已经在 ftp 中上传了我的代码,并且工作正常。

感谢所有回复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-13
    • 2011-04-04
    • 2017-07-15
    • 1970-01-01
    • 2010-10-15
    • 2019-12-29
    • 1970-01-01
    相关资源
    最近更新 更多