0

有關ActionScript 3中xml反序列化的最佳做法是什麼?關於ActionScript 3中的xml反序列化的最佳做法是什麼?

我正在開發一款實時多人Facebook遊戲。 我最喜歡用Flash寫客戶端。除此之外,服務器端是用Java編寫的。服務器和客戶端之間的通信提供了「套接字」。 服務器和客戶端互相發送xml。正如可以預料的那些Xmls包含來自位於兩側的類的「對象」。 類名和屬性是同步的。

談到我的問題,我已經嘗試了一些庫在序列化和反序列化的動作端。但其中大多數並不完全工作。

例如;

Asx3mer.instance.fromXML(xmlObj)

此庫不轉換XML到一具有一個Array屬性對象和該陣列包含另一個數組(我的意思是嵌套數組)。

你能幫我解決這個問題嗎?

謝謝。


首先,我選擇了json進行自動序列化。但是,當我反序列化JSON對象時,它被轉換爲具有類型「Object」的對象。在每一個回合中,我都必須在json字符串中放置一個標識符來處理它的類型。我已經研究了AMF,但正如你所提到的,AMF使用它的消息傳遞標準,並且我認爲它可能很難在服務器端處理反序列化對象(但是現在,我的選擇表明客戶端反序列化變得笨拙)。

+0

您不能使用原生XML對象嗎? – Cay 2012-03-31 11:31:10

+0

反序列化服務器端的對象通常並不困難,因爲大多數語言和框架都有AMF庫。你的遊戲需要什麼樣的表演?如果性能可能是一個問題,那麼AMF可能是最好的選擇,因爲它很快就可以派生和序列化客戶端。如果性能並不那麼重要,那麼您可能想要使用JSON並進行自己的類型轉換。 JSON是一個不錯的選擇,因爲它通常比AMF更容易調試。 – 2012-04-02 14:47:55

+0

@Laurent服務器端並不那麼難處理。我的問題是與客戶端網站。性能在這個時候並不重要。我沒有足夠的時間來創建我自己的類型轉換代碼。我正在研究準備好的。謝謝。 – 2012-04-02 16:37:03

回答

5

如果你想要這種自動對象序列化,我建議你使用更好的類型支持。 AMF,原生ActionScript序列化格式可能是您的項目的一個非常好的選擇。它由Flash本地支持,並有一個library for Java。格式也比XML更緊湊(事實上,我想知道爲什麼你選擇了XML而不是JSON或AMF)。

+0

+1。如果你不想走AMF路線,JSON將是更好的選擇。 – francis 2012-03-31 15:23:18

+0

@Laurent我不喜歡AMF,因爲我開發的遊戲是異步的。在客戶端發送請求之前,AMF不允許服務器發送響應。很明顯,我必須在它們之間提供「套接字連接」。也許我錯了選擇XML序列化。但是,Flash的JSON反序列化是一個地獄,我的意思是。我在JSON上試了很多庫。它們中的任何一個都不能將json字符串轉換爲指定的類型。轉換後的對象的類型始終爲「OBJECT」。如果您知道解決方案,請與我分享,與我們分享? – 2012-04-04 19:01:22

相關問題