1

我可以使用 ExternalInterface 调用命名空间的 JavaScript 函数吗?

//JavaScript
foo.bar = function(baz) {}

// AS3
import flash.external.ExternalInterface;
ExternalInterface.call('foo.bar', baz);
4

2 回答 2

2

的文档ExternalInterface.call有点误导。它声明第一个参数必须是函数名,这不是全部事实。它可以是任何可以被评估为适当的 JS 表达式的字符串。实际上

ExternalInterface.call(func, param_1, ... , param_n);

相当于

eval(func)(param_1, ... , param_n);

所以您也可以执行以下操作

ExternalInterface.call("function (foo) { alert(foo); return true; }","test");

这种技术有时用于Flash JS 注入。希望这能澄清事情......

于 2010-02-09T19:02:57.693 回答
1

是的。是的你可以。

于 2010-02-09T17:10:42.763 回答