Proxy 类没有构造函数,您不应尝试实例化 Proxy。而是应使用 Proxy 类的子类来覆盖诸如
同时请记住,您自己的用于覆盖 Proxy 类的方法的代码也可能会意外引发异常。在使用这些方法时引发异常会导致问题,因为调用代码(使用诸如
Proxy 类取代了 ActionScript 2.0 的
为了避免与
在 Proxy 类的方法采用
例如:
例如(使用
例如(使用
注意:ByteArray 类适用于需要在字节层访问数据的高级 开发人员。
内存中的数据是一个压缩字节数组(数据类型的最紧凑表示形式),但可以使用标准
此外,还支持 zlib 压缩和解压缩,以及 Action Message Format (AMF) 对象序列化。
ByteArray 类可能的用途包括:
注意:在字节上调用
注意如何在末尾添加一段代码以检查文件结尾错误,确保读取的字节流没有超出文件结尾。
在调用后,ByteArray 的
这种 deflate 压缩算法用于多种压缩格式,如 zlib、gzip、一些 zip 实现等。在使用这些压缩格式之一压缩数据时,除了存储原始数据的压缩版本之外,压缩格式数据(例如 .zip 文件)还包括元数据信息。举例来说,各种文件格式中包括的元数据的类型有文件名、文件修改日期/时间、原始文件大小、可选的注释、校验和数据等。
例如,在使用 zlib 算法压缩 ByteArray 时,将以特定的格式构建生成的 ByteArray。一些字节包含有关所压缩数据的元数据,而另一些字节包含原始 ByteArray 数据的实际压缩版本。根据 zlib 压缩数据格式规范的定义,这些字节(即包含原始数据的压缩版本的部分)使用 deflate 算法进行压缩。因此,这些字节与对原始 ByteArray 调用
若要使用 deflate 格式以 gzip 或 zip 等特定格式压缩 ByteArray 实例的数据,不能只调用
在调用后,ByteArray 的
为了使用 deflate 格式以 gzip 或 zip 等特定格式压缩 ByteArray 实例的数据,不能只调用
在调用后,ByteArray 的
为了对使用 deflate 压缩算法的格式压缩的数据(如 gzip 或 zip 格式的数据)进行解码,对包含压缩格式数据的 ByteArray 不能只调用
返回值的范围是从 -128 到 127。
返回值的范围是从 -2147483648 到 2147483647。
注意:如果当前系统无法识别
返回值的范围是从 -32768 到 32767。
返回值的范围是从 0 到 255。
返回值的范围是从 0 到 4294967295。
返回值的范围是从 0 到 65535。
在调用后,ByteArray 的
在对使用 deflate 压缩算法的格式压缩的数据(如采用 gzip 或 zip 格式的数据)进行解码时,对包含压缩格式数据的 ByteArray 调用
使用参数的低 8 位。忽略高 24 位。
如果省略
如果
每次访问 ByteArray 对象时,将
将对象写入二进制数据或从中读取对象时,将使用
如果将长度设置为大于当前长度的值,则用零填充字节数组的右侧。
如果将长度设置为小于当前长度的值,将会截断该字节数组。
默认情况下,所有 IDataInput 和 IDataOutput 操作均为“bigEndian”(序列中的最高有效字节存储在最低或第一个存储地址),而且都不分块。
符号扩展名仅在读取数据时有效,写入数据时无效。因此,无需单独的写入方法就可以使用
注意如何在末尾添加一段代码以检查文件结尾错误,确保读取的字节流没有超出文件结尾。
如果省略
如果
十六进制数字 0x12345678 包含 4 个字节(每个字节包含 2 个十六进制数字)。最高有效字节为 0x12。最低有效字节为 0x78。(对于等效的十进制数字 305419896,最高有效数字是 3,最低有效数字是 6)。
使用 bigEndian 字节顺序(最高有效字节位于最前)的流将写入:
12 34 56 78
十六进制数字 0x12345678 包含 4 个字节(每个字节包含 2 个十六进制数字)。最高有效字节为 0x12。最低有效字节为 0x78。(对于等效的十进制数字 305419896,最高有效数字是 3,最低有效数字是 6)。
使用 littleEndian 字节顺序(最低有效字节位于最前)的流将写入:
78 56 34 12
如果某个类既没有实现 IExternalizable 接口,也没有从实现该接口的类继承,则将仅使用公共成员的默认机制对该类的实例进行序列化。因此,类的私有成员、内部成员和受保护的成员将不可用。
要序列化私有成员,类必须使用 IExternalizable 接口。例如,以下类将不会序列化其任何成员,因为这些成员都是私有成员:
但是,如果实现了 IExternalizable 接口,则可以将类的私有成员写入数据流或从数据流中读取类的私有成员,如下所示:
注意:如果某个类实现了 IExternalizable,则默认序列化不再适用于该类的实例。如果该类从超类继承公共成员,还必须小心地管理这些成员。
如果实现 IExternalizable 的某个类的子类有自己的私有成员,则该子类必须覆盖 IExternalizable 的方法,如下所示:
在将数据写入数据流之前,也可以使用 IExternalizable 接口来压缩数据。例如:
注意:
如果
要获取某个类型的静态属性,请为
注意:如果只需要遍历某个对象的继承层次结构,而不需要
下表描述了由
使用此函数检索了类的名称后,可以用
注意:此函数将本身局限于实例层次结构,而
关于日历日期(时间戳),请参阅 Date 对象。
每次调用
创建一个计数到一百万的循环。如果系统处理此请求的速度比一秒钟后到期的速度还要快,则
作为使用
如果打算使用
作为使用此方法的替代方法,请考虑创建一个 Timer 对象,带有指定的间隔,并使用 1 作为
如果打算使用
可以创建 Timer 对象以运行一次或按指定间隔重复运行,从而按计划执行代码。
计时器不会自动启动;必须调用
创建了一个 Timer 对象,它在 30 秒内启动(将延迟设置为 30000 毫秒),并在总共 90 秒的时间内重复启动 3 次。(计时器将在第 3 次后停止。)
为
注意:Timer 类通过增大
在最后一次调用计时器后,将调度
注意:建议
默认情况下,所有 IDataInput 和 IDataOutput 操作均为“bigEndian”(序列中的最高有效字节存储在最低或第一个存储地址),而且都不分块。如果可用数据不足,则会引发
符号扩展名仅在读取数据时有效,写入数据时无效。因此,无需单独的写入方法就可以使用
注意如何在末尾添加一段代码以检查文件结尾错误,确保读取的字节流没有超出文件结尾。
注意:如果当前系统无法识别
此方法类似于 Java® IDataInput 接口中的
以下语句显示了一个 Dictionary 对象和一个 key 对象之间的关系:
var dict = new Dictionary(); var obj = new Object(); var key:Object = new Object(); key.toString = function() { return "key" } dict[key] = "Letters"; obj["key"] = "Letters"; dict[key] == "Letters"; // true obj["key"] == "Letters"; // true obj[key] == "Letters"; // true because key == "key" is true b/c key.toString == "key" dict["key"] == "Letters"; // false because "key" === key is false delete dict[key]; //removes the key