如何调用AS3 swf托管的AS2 swf中的函数并将数组返回AS3 swf? (使用SwfBridge)

时间:2009-05-21 21:28:40

标签: flash actionscript-3 actionscript-2 communication localconnection

我有一个Flash CS4 AS3 swf(主机),使用gSkinner的swfBridge加载Flash 8 AS2 swf(客户端)。

这很好用,主机可以在客户端调用函数没问题。但是,我希望能够在客户端中调用一个函数,并让该函数将一个数组返回给主机。

这是我认为可行的代码 -

主机(AS3)代码 -

var hostArray:Array = new Array();
hostArray = mySwfBridge.send("getArray");

客户端(AS2)代码

var theArray = new Array("item1, item2, item3);
function getArray() :Array {
    return theArray;
}

任何想法?

1 个答案:

答案 0 :(得分:2)

您面临的问题是LocalConnection(由SwfBridge使用)是否异步调用。换句话说,执行调用程序脚本不会停止执行以等待调用函数返回结果。

如果您需要从LocalConnection的另一侧检索值,则需要将其设置为双向工作。即您的客户端脚本必须通过LocalConnection(在这种情况下为SwfBridge)将其结果发送回主机对象上的回调方法,而不是通过 return 执行此操作