ExternalInterface是否支持点符号访问对象拥有的函数?

时间:2016-12-23 02:11:13

标签: actionscript-3 flash

ExtenalInterface.call是否支持对函数的点访问?

我正在尝试编写一个包装类,而不是在窗口文档中拥有所有函数,因此我将它们放在我自己的类MyClass.MyFunction中。

但这是否适用于外部接口?这会有效吗?

var result:Object = ExtenalInterface.call("MyClass.MyFunction", "hello");

1 个答案:

答案 0 :(得分:1)

来自the documentation

  

要在容器中调用的函数的字母数字名称。使用非字母数字函数名称会导致运行时错误(错误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");