Сериализация массива во Flash AS3 - PullRequest
2 голосов
/ 13 января 2010

Мне нужно сериализовать и десериализовать (это даже слово?) Массив в AS3, чтобы его можно было отправлять в виде строки.

Единственная проблема в том, что он не просто содержит текст, он содержит объекты.

Можно ли сериализовать и десериализовать массивы в AS3 так же, как в PHP? Как я могу это сделать?

После исправления этой ошибки все будет в порядке с моей программой.

РЕДАКТИРОВАТЬ: мне нужно иметь возможность синхронизировать массив между несколькими флэш-файлами, которые соединяются через TCP и могут отправлять простые вещи, такие как строки и целые числа, поэтому мне нужно иметь возможность передавать данные об этом за один раз, в строковая форма.

Ответы [ 2 ]

0 голосов
/ 04 мая 2010

возможно, вам стоит взглянуть на эту страницу, она похожа на то, что вы пытаетесь сделать

http://www.actionscriptdeveloper.co.uk/serializing-and-unserializing-svg-objects-to-arrays-in-actionscript-3/

0 голосов
/ 13 января 2010

Если ваша цель - обмениваться данными между клиентами по TCP, то просто сериализуйте объекты с помощью AMF, используя метод writeObject для вашего сокета. Я не уверен, что это расходится с вашим требованием "в строковой форме", так как это скорее двоичный формат для эффективности.

Редактировать: записать объект в ByteArray, а затем Base64 закодировать его для создания строки. Это было бы похоже на то, как некоторые веб-сервисы работают с двоичными данными, поскольку они должны быть помещены в строковый формат, который хорошо сочетается с 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

...