0

HTMLからActionScript関数を実行し、値をHTMLに戻したい。ただし、フラッシュ内の関数にはaddEventListenerが必要です。したがって、main-functionはEventListener-functionよりも速く終了するため、どのように値を返すことができるかわかりません。明らかに、イベント関数にはvoid以外のものを返す機能はありませんが、いくつかのトリックがあるのでしょうか。

4

1 に答える 1

1

javascriptを機能させるためにすぐに戻り値を戻す必要がないと仮定すると、フラッシュの準備ができるまでフラッシュをポーリングしてから、戻り値を読み取ることができます。

flash.execute();
var checkInterval = setInterval(function() {
    if (flash.isReady()) {
        clearInterval(checkInterval);
        var returnValue = flash.getReturnValue();
    }
}, 100);

フラッシュでは、execute()は「ready」ブール値をfalse(isReady()によってjavascriptから読み取ることができます)に設定してから、非同期操作を開始します。完了すると、フラッシュはgetReturnValue()によってjavascriptから読み取ることができる戻り値を格納し、最後に準備完了ブール値をtrueに変更します。

これは、parallell実行コマンドを呼び出す必要がないことを前提としています。その場合、各実行にIDを指定し、それをexecute()、isReady()、およびgetReturnValue()に送信し、内部非同期呼び出しをidで区切ることにより、フラッシュに並列要求を処理させることができます。

于 2012-08-18T17:39:36.877 に答える