ExtenalInterface.call是否支持对函数的点访问?
我正在尝试编写一个包装类,而不是在窗口文档中拥有所有函数,因此我将它们放在我自己的类MyClass.MyFunction中。
但这是否适用于外部接口?这会有效吗?
var result:Object = ExtenalInterface.call("MyClass.MyFunction", "hello");
答案 0 :(得分:1)
要在容器中调用的函数的字母数字名称。使用非字母数字函数名称会导致运行时错误(错误2155)。您可以使用try..catch块来处理错误。
您需要一个调度程序功能才能将事情提交给您的班级:
function dispatcher() {
var name = arguments[0];
var func = MyClass[name];
func.apply(null, arguments);
//You may also wish to consider slicing the array to remove the function name before calling the function
}
从AS3中使用它:
var result:Object = ExtenalInterface.call("dispatcher", "MyFunction", "hello");