2011-07-22 41 views
0

是否有可能從Flex的ExternalInterface.call()作爲參數傳遞給javascript函數的ArrayCollection對象?從flex到javascript函數傳遞數組集合

Flex的示例代碼:

var obj:Object = new Object(); 
    obj.id = "Id"; 
    obj.name = "SomeName"; 
ExternalInterface.call("jsFunction",obj); 

JavaScript代碼:

function jsFunction(flexObj){ 
    alert('Id::'+flexObj.id+'Name::'+flexObj.name); 
} 

我能夠得到JS id和name的值,因爲它們是String對象。

我的問題是:我可以以類似的方式從Flex到JS的arrayCollection對象?

obj.list = arrayCollectionObj; 

如果我這樣做,我在JavaScript中得到null。如何實現這一目標?

任何幫助將不勝感激。

回答

3

你不能,ListCollections實際上是相當複雜的數據結構,它們需要轉換爲更簡單的方式傳遞給JavaScript。當然,如果你知道所有內容都很簡單,你可以簡單地打電話:

obj.list = arrayCollectionObj.toArray(); 
+0

如果我轉換並傳遞數組到js,我該如何讀取js中的值? –

+0

[docs](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html?filter_flash=cs5&filter_flashplayer=10.2&filter_air=2.6#call%28%29)說你可以把它看作一個數組。 – cwallenpoole