面向对象的Javascript,与Flash通信

Object oriented Javascript, communication with Flash

本文关键字:Flash 通信 Javascript 面向对象的      更新时间:2023-09-26

我知道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(...)

试试这个解决方案:

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

您也可以直接调用worker,如果它们(工作线程和闪存对象)位于同一命名空间中,则window.worker