从Flash调用带名称空间的JavaScript函数
我可以使用ExternalInterface调用带名称空间的JavaScript函数吗从Flash调用带名称空间的JavaScript函数,javascript,flash,namespaces,externalinterface,Javascript,Flash,Namespaces,Externalinterface,我可以使用ExternalInterface调用带名称空间的JavaScript函数吗 //JavaScript foo.bar = function(baz) {} // AS3 import flash.external.ExternalInterface; ExternalInterface.call('foo.bar', baz); 对。是的,你可以。外部接口调用的文档有点误导。它声明第一个参数必须是函数名,这不是全部事实。它可以是任何可以作为proprer JS表达式计算的字符串。
//JavaScript
foo.bar = function(baz) {}
// AS3
import flash.external.ExternalInterface;
ExternalInterface.call('foo.bar', baz);
对。是的,你可以。外部接口调用的文档有点误导。它声明第一个参数必须是函数名,这不是全部事实。它可以是任何可以作为proprer JS表达式计算的字符串。其实
ExternalInterface.call(func, param_1, ... , param_n);
相当于
eval(func)(param_1, ... , param_n);
因此,您不妨执行以下操作
ExternalInterface.call("function (foo) { alert(foo); return true; }","test");
这项技术有时用于治疗癌症。希望这能澄清一些事情 这个问题纯粹是理论上的,所以我上面所说的调用命名空间函数的方法是正确的吗?