2010-01-13 31 views
2

我需要序列化和反序列化(甚至是一個字?)AS3中的數組,因此它可以作爲字符串發送。序列化Flash中的數組AS3

唯一的問題是它不僅包含文本,而且包含對象。

是否有可能在AS3中像在PHP中一樣序列化和反序列化數組?我該怎麼做?

一旦這個錯誤得到解決,我的程序一切都會好的。

編輯:我需要能夠跨幾個閃存文件,這是通過TCP連接,可以發送簡單的東西像字符串和整數,所以我需要能夠一次去傳輸數據,以字符串形式。

回答

0

如果您的目標是通過TCP在客戶端之間進行通信,那麼只需在您的套接字上使用writeObject方法將對象與AMF序列化即可。我不確定這是否與您的「字符串形式」要求不一致,因爲它更像是一種提高效率的二進制格式。

編輯:將對象寫入ByteArray,然後Base64對其進行編碼以生成一個字符串。這與一些Web服務處理二進制數據的方式類似,因爲它必須放入一個字符串格式中,以便與xml很好地配合,並且base64包含所有可打印的字符。

您甚至可以在對它進行編碼之前對其進行壓縮,以使通過線路發送的字節數更小。

的ByteArray: http://livedocs.adobe.com/flex/3/html/help.html?content=ByteArrays_2.html

有附加在這個論壇主題爲Base64庫,你可以在互聯網上找到其他庫: http://www.flexdeveloper.eu/forums/actionscript-3-0/compress-and-uncompress-strings-using-bytearray

+0

也許我需要進一步澄清...我使用多人API WH我使用TCP。我只能發送字符串和整數... – Cyclone

+0

請參閱編輯,writeobject到bytearray,如果需要可以選擇壓縮,然後編碼爲base64,並且可以將它作爲字符串進行處理。 – AaronLS