1

flexアプリケーションにiframeを実装しました。iframeには、GoogleマップとさまざまなJavaScript関数が含まれており、フレックスアプリから正常に呼び出すことができます。

そのようです

ExternalInterface.call("top.frames[0].addMarker", i, latitude, longitude, timestamp, user, state, datestring);

しかし今、私は他の方向にデータを渡したいです。

次の記事を見つけましたhttp://webdevwonders.com/communication-between-flex-and-javascript/

addcallbackの使用法を示しています

ExternalInterface.addCallback( "iAmCalledFromJavascript", iAmCalledFromJavascript);

同じtop.frames[0]を追加する必要がありますか。または何か違う?

ありがとう

ヴィンス

4

1 に答える 1

1

いいえ、 top.frames[0]を追加する必要はありません。JavaScriptからFlex内でActionScriptを呼び出すと、Flex内のDOMフレームのようなものはありません。

以前と同じJavaScriptのアプローチを引き続き使用します。ただし、親iframeドキュメントへのアクセスの詳細については、 http: //www.esqsoft.com/javascript_examples/iframe_talks_to_parent/を参照してください。

// This is the function that gets called from ActionScript
function iAmCalledFromAS(argument1, argument2) {

    // Do whatever you like in here
    return "result";
}

function initCommunication() {

    // 'FlexJSExample' is the id of the Flash object
    var flashObj = "FlexJSExample";
    parent.$("iframe").each(function(iel, el) {
      if(el.contentWindow === window)
        // call the previously in ActionScript defined callback function of the Flash object
        el[flashObj].iAmCalledFromJavascript("argument1", 2);
    });
   }
}
于 2012-06-20T16:04:46.470 に答える