我可以使用ExternalInterface调用名称空间JavaScript函数吗?从Flash调用命名空间JavaScript函数
//JavaScript
foo.bar = function(baz) {}
// AS3
import flash.external.ExternalInterface;
ExternalInterface.call('foo.bar', baz);
我可以使用ExternalInterface调用名称空间JavaScript函数吗?从Flash调用命名空间JavaScript函数
//JavaScript
foo.bar = function(baz) {}
// AS3
import flash.external.ExternalInterface;
ExternalInterface.call('foo.bar', baz);
ExternalInterface.call
的文档有点误导。它声明第一个参数必须是一个函数名,这并不是全部的事实。它可以是任何可以被评估为proprer 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 injection。希望这个澄清的东西...
是的。是的你可以。
这个问题是纯粹的理论,所以在我上面调用它的方式调用命名空间函数是正确的? – 2010-02-09 17:16:00
啊,是的,这确实清除了它。谢谢。 – 2010-02-10 16:20:44