0

gSkinnerのswfBridgeを使用してFlash 8 AS2 swf(クライアント)をロードするFlash CS4 AS3 swf(ホスト)があります。AS3 swfでホストされたAS2 swfで関数を呼び出し、配列をAS3 swfに戻すにはどうすればよいですか? (SwfBridgeを使用)

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

ホスト(AS3)コード - -

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

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

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

任意のアイデア

これは、私が仕事だろうと思ったのコードですか?

答えて

2

LocalConnectionSwfBridgeで使用されている)が非同期に呼び出しているという問題があります。言い換えれば、呼び出し元スクリプトの実行は、呼び出された関数からの結果を待つために実行を停止しません。

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

+0

ありがとうTheoは、コールバックメソッドによって、呼び出された関数が完了したときに、元の呼び出し元の関数を呼び出して、returnステートメントによって送信されたものを処理することを意味しますか?私はこれを考えていましたが、それはちょっとばかばかしいと思っていました...もしそれが唯一の方法だとしたら...多くの感謝:) – undefined

関連する問題