Знакомство с основами AMF
//Создадим AMF используя ByteArray
import flash.utils.ByteArray;
//Создание байтовой последовательности
var bytes:ByteArray = new ByteArray();
//Запись объекта в виде байтовой последовательности
bytes.writeObject({myString:"Hello World", myNumber:21, myBool:true});
В то время как Вы записываете объект в ByteArray, он сериализуется в байтовую последовательность, используемую форматом AMF. Теперь можно эту последовательность передать посредством сети или сохранить в файловой системе для последующего использования путем десериализации. Простейший пример десериализации AMF:
//Создаем объект и десериализуем из байтовой последовательности
var myObject:Object = bytes.readObject();
//Проверяем результат
trace( myObject.myString ) // Hello World
Во Flash Player-е AMF используется в таких классах, как SharedObject, RemoteObject, LocalConnection, ByteArray, RTMP (во всех вариантах) и во всех удаленных RPC-операциях. Выгодность использования AMF на данный момент сильно недооценена, несмотря на то что имеет ряд преимуществ:
- Размер файла - Объекты AMF имеют очень маленький объем за счет того что сжаты с использованием zlib.
- Быстрая Сериализация/Десериализация - Скорость кодирования/раскодирования в AMF очень высока даже при малом количестве памяти и медленном процессоре.
- Поддержка как стандартных типов данных, так и кастомных классов - Вы можете сериализировать любой объект (кроме displayObjects, конечно).
И еще... Тед обещает нам большую новость об AMF в декабре... будем ждать.