1

我已经在我的 flex 应用程序中实现了一个 iframe。iframe 包含一个谷歌地图和各种 JavaScript 函数,我可以成功地从我的 flex 应用程序中调用它们。

像这样

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 回答