Что такое ObjectEncoding и в чем отличия AMF0 и AMF3?

Автор: tigor
24.11.2009 10:47
Ответов 1

Ответы

ObjectEncoding это класс, который позволяет классам, сериализующим объекты (таким как NetStream, NetConnection, SharedObject и ByteArray), работать с предыдущими версиями ActionScript.

Кодировка объектов управляет представлением этих объектов в формате Action Message Format (AMF). С помощью AMF проигрыватель Flash Player обеспечивает эффективное взаимодействие между приложением и удаленным сервером. AMF кодирует удаленные вызовы процедуры в компактное двоичное представление, которое может быть передано по протоколу HTTP/HTTPS или RTMP/RTMPS, используемому сервером Flash Media Server. Объекты ActionScript и значения данных сериализуются в этот двоичный формат, который в большинстве случаев обеспечивает более компактное представление данных, чем например язык XML.

Проигрыватель Flash Player 9 осуществляет сериализацию в двух различных форматах: AMF3 и AMF0. AMF3, используемая по умолчанию сериализация для ActionScript 3.0, обладает целым рядом преимуществ по сравнению с AMF0, которая используется для ActionScript 1.0 и 2.0. AMF3 отправляет данные по сети намного эффективнее, чем AMF0. Формат AMF3 поддерживает отправку объектов int и uint как целые числа, а также поддерживает типы данных, доступные только в ActionScript 3.0 (такие как ByteArray, XML и IExternalizable). Это доступно только в ActionScript 3.0 и на серверах, использующих кодировку AMF3, таких как Flex 2.

Классы ByteArray, NetConnection, NetStream, SharedObject, Socket и URLStream содержат свойство objectEncoding, которому присваивается константа из класса ObjectEncoding. Характеристики свойства objectEncoding зависят от самого объекта. В описании свойства objectEncoding для каждого класса даны более подробные сведения по этому вопросу.