面向对象的Javascript,与Flash通信

时间:2013-09-20 13:38:40

标签: javascript jquery actionscript-3 flash

我了解ActionScript 3中的ExternalInterface.call('functionName', arguments);可用于与HTML页面上定义的Javascript function functionName(arguments)进行通信。

但是自定义对象实例呢?说我有:

(function (factory, $, undefined) {

    factory.worker = function () {
        ...
    };

    factory.worker.prototype.init = function (params) {
        ...
    };

    factory.worker.prototype.flash_tell_me_something = function (params) {
        ...
    };

}(window.factory = window.factory || {}, jQuery));

为了使用它,我将它与jQuery结合起来创建一个实例,加上Flash对象:

$(document).ready(function () {
    var myworker = new factory.worker();
    myworker.init();
    var myloadedcallback = function () {
    };
    flashVars = {loadedCallback: myloadedcallback};
    ...
    swfobject.embedSWF(swfUrl, id, 215, 138, version, null, flashVars, params);
});

如何从Flash中呼叫myworker.flash_tell_me_something(...)

1 个答案:

答案 0 :(得分:1)

试试这个解决方案:

    if(ExternalInterface.available)
    {
        ExternalInterface.call("window.myworker.flash_tell_me_something", "hello");
    }

您也可以直接调用worker,而不是window.worker,如果它们是(worker和flash对象)在同一名称空间中。