是否可以使用ExternalInterface調用將數組從Flash(AS3)發送到JavaScript?從Flash(AS3)發送數組到JavaScript
我目前正在從Flash中的'for each'循環多次調用一個函數,但它太快了,以至於JavaScript不能跟上。
我的想法是創建一個屬性數組,將其傳遞給JavaScript函數,然後循環遍歷JavaScript中的數據。
感謝, 喬希
是否可以使用ExternalInterface調用將數組從Flash(AS3)發送到JavaScript?從Flash(AS3)發送數組到JavaScript
我目前正在從Flash中的'for each'循環多次調用一個函數,但它太快了,以至於JavaScript不能跟上。
我的想法是創建一個屬性數組,將其傳遞給JavaScript函數,然後循環遍歷JavaScript中的數據。
感謝, 喬希
除了使用JSON的建議之外,對於小型數組,這應該更快,並且不需要使用eval或外部庫進行分析。在Flash加入一個字符串數組是這樣的:
物品1 | ITEM2 |項目3 | ITEM4
傳遞字符串給JS和分裂再次採用分體式(「|」)
你總是可以創建一個JSON對象並將其傳遞給JavaScript。
JSON很好,有很多庫可以在Actionscript和Javascript上使用。但在這種情況下,玩家會爲您處理序列化,所以我只會使用本機AS對象。它更簡單,現成可用,速度可能更快。 – 2009-06-30 02:01:59
在接收json對象時如何將它存儲在字符串中的flash中? – 2010-01-20 14:05:03
是的,這是可能。
...參數 - 的參數傳遞 在容器中的函數。您可以指定零個或多個參數, 用逗號分隔它們。它們可以是任何ActionScript數據類型的 。當 調用的是JavaScript函數 時,ActionScript類型爲 自動轉換爲 JavaScript類型;當呼叫到 某個其他ActiveX容器時, 參數被編碼在請求 消息中。
簡單的測試:
AS代碼:
if(ExternalInterface.available) {
ExternalInterface.call("jsTest", [0,1,"two",{a:1,b:2}]);
}
JS代碼:
function jsTest(arg) {
alert(arg);
}
剛剛發現這裏面可能導致我的問題http://www.scottgmorgan.com /blog/index.php/tag/externalinterface/ 儘管可能,仍然對數組感興趣。 – Josh 2009-06-29 14:24:04