0

gSkinner の swfBridge を使用して Flash 8 AS2 SWF (クライアント) をロードする Flash CS4 AS3 SWF (ホスト) があります。

これはうまく機能し、ホストはクライアントの関数を問題なく呼び出すことができます。ただし、クライアントで関数を呼び出して、その関数が配列をホストに返すようにしたいと考えています。

これは私がうまくいくと思ったコードです -

ホスト (AS3) コード -

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

クライアント (AS2) コード

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

何か案は?

4

1 に答える 1

2

あなたが直面している問題は、LocalConnection(によって使用されるSwfBridge)が非同期的に呼び出すことです。つまり、呼び出し元スクリプトの実行は、呼び出された関数からの結果を待つために実行を停止することはありません。

の反対側から値を取得する必要がある場合は、LocalConnection双方向で機能するように設定する必要があります。LocalConnectionつまり、クライアントスクリプトは、を介してこれを行うのではなく、 (SwfBridgeこの場合)を介してホストオブジェクトのコールバックメソッドに結果を送り返す必要がありますreturn

于 2009-05-23T01:31:42.837 に答える