0

我想在 Action 脚本中调用一个 javascript 函数,如下所示:

ExternalInterface.call('a_js_function', param1, another_js_function);

我想要 javascript 函数 a_js_function 接受两个参数,一个是字符串,另一个是回调函数。所以我可以这样调用js函数:

function a_js_function(testStr, callback) {
    console.log(testStr);
    callback(testStr);
}

function another_js_function(str) {
    console.log(str);
}

这样做的正确方法是什么?

问题解决了,原来我传入的第二个是一个字符串,在javascript中我必须将字符串转换为函数才能调用它。

4

2 回答 2

0

由于 flash 没有对 javascript 函数的任何引用,因此another_js_function您需要将函数名称作为字符串传递,然后使用任何命名空间上的括号来访问它。为了简单起见,我使用了全局变量,但它可以是任何对象/命名空间

another_js_function = function(testStr) {
    alert(testStr);
}

a_js_function = function(testStr, callback) {
    console.log( this.window );
    window[callback].call(this, testStr); // pass scope?
    // OR
    window[callback](testStr);
}
// Simulating call from Flash
a_js_function("howdy y'all", "another_js_function");

在行动:http: //jsfiddle.net/3n1gm4/Np3bW/

于 2013-08-15T17:39:06.183 回答
0

像这样打电话

try {
       ExternalInterface.call('a_js_function', param1, another_js_function);
        } catch(e:Error) {
        trace(e)
        }

有关更多信息,请参阅

于 2013-08-15T17:34:29.863 回答