如果您的对象正在实现IExternalizable,并且您调用RegisterClassAlias,则可以安全地使用ReadObject和WriteObject。但是请注意,在实现IExternalizable时不允许使用构造函数参数。
例如:
package {
import flash.net.*;
import flash.utils.*;
public class Foo implements IExternalizable {
registerClassAlias("Foo", Foo);
public var bar: String;
public function Foo() { // No constructor parameters allowed.
}
public function writeExternal(output: IDataOutput): void { output.writeUTF(bar); }
public function readExternal(input: IDataInput): void { bar = input.readUTF(); }
}
}
然后可以安全地调用任何IDataOutput或IDataInOut上的readObject和writeObject,例如socket、bytearray或urlstream。