ExternalInterface从flash调用到Javascript OOP对象

时间:2011-04-08 17:01:18

标签: javascript actionscript-3 actionscript

这是我的问题:

我在JavaScript中使用此类:

var c = new MyClass();
c.myFunction();
c.myFunction2();
c.myFunction3();
//and so on...

如何使用ExternalInterface.call

来引用此内容

我不能这样做:ExternalInterface.call("c.myFunction"));

3 个答案:

答案 0 :(得分:4)

为了使其正常工作,您尝试从Flash调用的对象需要具有全局范围。即,这不起作用:

// closure to keep vars out of global scope - generally a good thing!
(function() {
    var c;

    function MyClass() {
    }
    MyClass.prototype.myFunction = function() {
        alert('Do something!');
    }

    c = new MyClass();
})();

... meanwhile, in Flash ...

ExternalInterface.call("c.myFunction");

您需要的是对象的全局入口点。但是你得到了什么错误?你从电话中回来了null吗?是否抛出任何特定错误?

答案 1 :(得分:3)

是的,您可以(执行此操作:ExternalInterface.call(“c.myFunction”))。

答案 2 :(得分:0)

将其发布到服务器并以这种方式调用html页面 在flex项目文件系统中运行时,ExternalInterface存在问题 最像是嵌入/跨域问题。