Архив

Архив раздела ‘AMF’

Знакомство с основами AMF

30 ноября 2007 7 комментариев

Тед Патрик знакомит с основами формата AMF. Формат AMF - это бинарный формат, представляющий собой сериализованный ActionScript объект. Этот тип данных широко используется Flash-плеером и AIR как для хранения данных, так и для обмена ими. Во Flash Player 9 и AIR для работы с AMF в первую очередь используется класс flash.utils.ByteArray. Например:

  1. <br />//Создадим AMF используя ByteArray<br /><br /><br />import flash.utils.ByteArray;<br /><br />//Создание байтовой последовательности<br />var bytes:ByteArray = new ByteArray();<br /><br />//Запись объекта в виде байтовой последовательности<br />bytes.writeObject({myString:"Hello World", myNumber:21, myBool:true});<br />

В то время как Вы записываете объект в ByteArray, он сериализуется в байтовую последовательность, используемую форматом AMF. Теперь можно эту последовательность передать посредством сети или сохранить в файловой системе для последующего использования путем десериализации. Простейший пример десериализации AMF:

  1. <br />//Создаем объект и десериализуем из байтовой последовательности<br />var myObject:Object = bytes.readObject();<br /><br />//Проверяем результат<br />trace( myObject.myString ) // Hello World<br />

Во Flash Player-е AMF используется в таких классах, как SharedObject, RemoteObject, LocalConnection, ByteArray, RTMP (во всех вариантах) и во всех удаленных RPC-операциях. Выгодность использования AMF на данный момент сильно недооценена, несмотря на то что имеет ряд преимуществ:

  • Размер файла - Объекты AMF имеют очень маленький объем за счет того что сжаты с использованием zlib.
  • Быстрая Сериализация/Десериализация - Скорость кодирования/раскодирования в AMF очень высока даже при малом количестве памяти и медленном процессоре.
  • Поддержка как стандартных типов данных, так и кастомных классов - Вы можете сериализировать любой объект (кроме displayObjects, конечно).

И еще... Тед обещает нам большую новость об AMF в декабре... будем ждать.