Если ваш объект реализует 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(); }
}
}
После этого вы можете безопасно вызывать readObject и writeObject для любого IDataOutput или IDataInput, например, Socket, ByteArray или URLStream.