Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用ExternalInterface.call()调用AS函数_Javascript_Actionscript 3_Facebook Javascript Sdk - Fatal编程技术网

Javascript 使用ExternalInterface.call()调用AS函数

Javascript 使用ExternalInterface.call()调用AS函数,javascript,actionscript-3,facebook-javascript-sdk,Javascript,Actionscript 3,Facebook Javascript Sdk,如何从使用ExternalInterface.call()注入页面的JavaScript调用ActionScript 3中的函数 我试过很多方法,但都没有用 以下是所有必要代码的简化版本: public function myClass() { ExternalInterface.addCallback("callASFunction", myASFunction); var loadJS:XML = <script><![CDATA[

如何从使用
ExternalInterface.call()
注入页面的JavaScript调用ActionScript 3中的函数

我试过很多方法,但都没有用

以下是所有必要代码的简化版本:

public function myClass() {

    ExternalInterface.addCallback("callASFunction", myASFunction);

    var loadJS:XML =
    <script><![CDATA[

        function(oid){

            ob = document.getElementById(oid);

            if (!window.FB) { /* Include FB JS SDK */ }

            window.fbAsyncInit = function() {

                FB.init({ ... });

                FB.getLoginStatus(function(response) {
                 /* ob.callASFunction(); <= ERROR */
                    ob.callASFunction(response.status); /* <= FIX */
                });
            }
        }

    ]]></script>

    // Inject the JS into the page
    ExternalInterface.call(loadJS, ExternalInterface.objectID);

}

public function myASFunction(vars:String){

    // Do great things

}
在FF中:

uncaught exception: Error in Actionscript. Use a try/catch block to find error.
我认为问题在于
ExternalInterface.addCallback()
在调用
ob.callASFunction()
之前没有在Flash对象上附加侦听器

或者,也许我遗漏了什么


任何提示都将不胜感激。

对此有两种可能的修复方法

不要强制调用为方法的参数

public function myASFunction(vars:String = null){ ... }
ob.callASFunction(response.status); /* <= FIX */

始终将变量传递给方法

public function myASFunction(vars:String = null){ ... }
ob.callASFunction(response.status); /* <= FIX */
ob.callASFunction(response.status)/*