包 | flash.net |
类 | public final class ObjectEncoding |
继承 | ObjectEncoding Object |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
对象编码用于控制如何以 Action Message Format (AMF) 表示对象。Flash Player 使用 AMF 来启用应用程序和远程服务器之间的高效通信。AMF 将远程过程调用编码为一种紧凑的二进制表示形式,这种表示形式可以通过 HTTP/HTTPS 协议或 Flash Media Server 使用的 RTMP/RTMPS 协议进行传输。对象和数据值将被序列化为这种二进制格式,这种格式通常比其他表示形式(例如 XML)紧凑。
Adobe AIR 和 Flash Player 9 提供两种不同的序列化格式:AMF3 和 AMF0。AMF3 是为 ActionScript 3.0 开发的默认序列化格式,与用于 ActionScript 1.0 和 2.0 的 AMF0 相比,AMF3 具有多种优点。AMF3 通过网络发送数据比 AMF0 更高效。AMF3 支持将 int
和 uint
对象作为整型发送出去,并支持只可在 ActionScript 3.0 中使用的数据类型,例如 ByteArray、XML 和 IExternalizable。AMF3 只能在 ActionScript 3.0 和使用 AMF3 编码的服务器(例如 Flex 2)中使用。
ByteArray、FileStream、NetConnection、NetStream、SharedObject、Socket 和 URLStream 类均包含一个 objectEncoding
属性,为该属性分配的常量来自 ObjectEncoding 类。objectEncoding
属性的行为因对象而异;每个类的 objectEncoding
属性描述更加全面地说明了其行为。
属性 | 由以下参数定义 | ||
---|---|---|---|
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
dynamicPropertyWriter : IDynamicPropertyWriter [静态]
允许对动态对象的动态属性的序列化进行更大程度的控制。 | ObjectEncoding |
常量 | 由以下参数定义 | ||
---|---|---|---|
AMF0 : uint = 0 [静态]
指定使用 ActionScript 1.0 和 2.0 的 Action Message Format 来序列化对象。 | ObjectEncoding | ||
AMF3 : uint = 3 [静态]
指定使用 ActionScript 3.0 的 Action Message Format 来序列化对象。 | ObjectEncoding | ||
DEFAULT : uint = 3 [静态]
为当前运行时(Flash Player 或 AIR)指定默认(最新)格式。 | ObjectEncoding |
dynamicPropertyWriter | 属性 |
dynamicPropertyWriter:IDynamicPropertyWriter
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
允许对动态对象的动态属性的序列化进行更大程度的控制。当将此属性设为默认值 null
时,将使用本机代码序列化动态属性,这将写入除值为函数以外的所有动态属性。
仅对动态对象(在动态类中声明的对象)或使用 new
运算符声明的对象的属性调用该值。
可以使用此属性将动态对象的属性排除在序列化之外,将值写入动态对象的属性中或为动态对象创建新属性。为此,请将此属性设置为实现 IDynamicPropertyWriter 接口的对象。有关详细信息,请参阅 IDynamicPropertyWriter 接口。
实现
public static function get dynamicPropertyWriter():IDynamicPropertyWriter
public static function set dynamicPropertyWriter(value:IDynamicPropertyWriter):void
相关 API 元素
AMF0 | 常量 |
public static const AMF0:uint = 0
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指定使用 ActionScript 1.0 和 2.0 的 Action Message Format 来序列化对象。
AMF3 | 常量 |
public static const AMF3:uint = 3
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指定使用 ActionScript 3.0 的 Action Message Format 来序列化对象。
DEFAULT | 常量 |
public static const DEFAULT:uint = 3
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
为当前运行时(Flash Player 或 AIR)指定默认(最新)格式。由于对象编码控件仅在 Flash Player 9 和更高版本以及 Adobe AIR 中提供,因而使用的最早格式是用于 ActionScript 3.0 的 Action Message Format。
例如,如果某个对象的 objectEncoding
属性设置为 ObjectEncoding.DEFAULT
,则将使用 AMF3 编码。以后,如果更高版本的 Flash Player 或 Adobe AIR 引入了新版 AMF,并且您重新发布了内容,则应用程序将使用此新版 AMF。仅当您毫不担心新版与旧版之间的互操作性时才能使用此常数。
Tue Jun 12 2018, 11:04 AM Z