2012-06-20 52 views
1

我在我的flex應用程序中實現了一個iframe。該iframe包含谷歌地圖和各種JavaScript功能,我可以從我的Flex應用程序調用。將數據從iframe傳遞到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]。或不同的東西?

感謝

文斯

+0

有無你試過嗎?它工作嗎?如果不是,您收到了什麼錯誤? – JeffryHouser

回答

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); 
    }); 
    } 
} 
+0

文檔[flashObj]將在flashObj不存在的iframe中工作? –

+0

哦,在這種情況下,我認爲你應該看看http://stackoverflow.com/questions/935127/how-to-access-parent-iframe-from-javascript你需要訪問來自iframe的確切文檔你需要。 –

+0

所以看鏈接,也許parent.document [flashObj] .iAmCalledFromJavascript(「argument1」,2);代替。 –