我了解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(...)
?
答案 0 :(得分:1)
试试这个解决方案:
if(ExternalInterface.available)
{
ExternalInterface.call("window.myworker.flash_tell_me_something", "hello");
}
您也可以直接调用worker
,而不是window.worker
,如果它们是(worker和flash对象)在同一名称空间中。